【问题标题】:Why bcrypt always returns different results?为什么 bcrypt 总是返回不同的结果?
【发布时间】:2016-10-28 04:05:57
【问题描述】:

考虑以下打字稿:

$ ./artisan tinker
>>> bcrypt('123456')
=> "$2y$10$YLswQefA6JXTYMM5nH90we9siAtG71I1/LMa5XIkplCF32EMtXmKK"
>>> bcrypt('123456')
=> "$2y$10$LoakjerqalqFxI6r.BR.x.K1fycqWS59Xqfj.pblSzlPNLOcbWa/6"

这是为什么呢?

【问题讨论】:

  • @AlexeyMezenin 首先,./php 通常不会起作用。其次,为什么不保持原样(./artisan)?这表明可以使artisan 可执行并更轻松地运行它。对于那些还不知道的人。
  • 如果您在投反对票时能解释一下,我将不胜感激;)

标签: laravel bcrypt password-hash


【解决方案1】:

每次都使用不同的盐。将random salt 混入散列以防止使用precomputed hash tables。如果不加盐,攻击者将能够检测到像password123 这样的常见字符串,因为它们具有可识别的哈希值。加盐确保哈希是不可预测的。

【讨论】:

  • 并且还会立即知道两个或更多人是否拥有相同的密码
  • 如果你提到了彩虹表,你能详细说明一下吗?我想,它们不仅仅是密码和哈希值之间的映射?智能哈希表?
  • 这正是它们的本质:密码与其哈希值之间的映射。如果不加盐,攻击者可以预先计算许多常见密码的哈希值。
猜你喜欢
  • 1970-01-01
  • 2017-09-21
  • 2015-06-22
  • 1970-01-01
  • 2021-11-16
  • 1970-01-01
  • 2012-07-28
  • 2013-03-10
  • 1970-01-01
相关资源
最近更新 更多