Fundamental difference between Hashing and Encryption algorithms
Preferred Method of Storing Passwords In Database
http://codahale.com/how-to-safely-store-a-password/
我对两件事感到困惑。如果php 7.0bcrypt提供随机盐。我们应该如何检索它进行密码验证?
我知道有一些关键的扩展函数,比如pbkdf2,但是有人能解释为什么像scrypt这样的内存密集型哈希算法比bcrypt更受欢迎吗?除了暴力攻击方面。根据我在网上读到的逻辑,人们建议使用scrypt进行多次迭代。

最佳答案

关于bcrypt和salt的第一个问题:salt与哈希字符串一起包含在结果字符串中以及成本中。三个字符串中的每一个都有固定的长度,因此此后可以很容易地检索到。
有关更详细的说明,请参见this answer
scryptbcrypt的更新版本,需要更多RAM才能运行。RAM需求背后的原因是,基于CPU周期的加密(基于I/O)很容易使用现代GPU、多核等强制执行。另一边的RAM不太容易扩展,因此增加RAM+多个操作的组合理论上是一种更安全的方法。
this great answer中阅读更多信息。

10-07 19:38
查看更多