【问题标题】:Comparing password encrypted by bcrypt比较 bcrypt 加密的密码
【发布时间】:2017-10-31 18:25:39
【问题描述】:

我有一个使用 bcrypt 加密用户名密码的网页,然后这些密码存储在数据库中。我有一个在 QT 上运行的 c++ 程序需要对用户进行身份验证,为此我必须加密用户输入的密码并将其与数据库中的密码进行比较。这是正确的方法吗?如果是这样,我该如何实现?用户输入密码的加密必须与 bcrypt 的加密相同,我该怎么做?提前致谢。

【问题讨论】:

标签: c++ qt encryption bcrypt


【解决方案1】:

实际上您不会加密密码,因为它们可能会被解密。正确的做法是散列密码并存储散列值。如果用户输入密码,您还可以散列该值并将其与保存的散列值进行比较。这是正确的方法,因为哈希函数是单向函数(不可逆),请参阅here

哈希方法防止有人可以解密密码。您应该注意像 SHA-2 或 SHA-3 这样的安全哈希函数,因为某些哈希函数不再安全,请参阅 list of broken hash functions

【讨论】:

  • 尽管 OP 混淆了术语,但 bcrypt 实际上是一个散列函数。
猜你喜欢
  • 1970-01-01
  • 2012-10-31
  • 1970-01-01
  • 2019-06-28
  • 2019-10-11
  • 1970-01-01
  • 1970-01-01
  • 2021-04-10
  • 2019-11-11
相关资源
最近更新 更多