【问题标题】:Correct way to store passwords in PHP在 PHP 中存储密码的正确方法
【发布时间】:2015-12-22 06:50:25
【问题描述】:

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.0 bcrypt 提供随机盐。我们应该如何检索它以进行密码验证?

我知道像 PBKDF2 这样的关键拉伸函数,但是有人可以向我解释为什么像 scrypt 这样的内存密集型哈希算法比 bcrypt 更受欢迎吗?除了蛮力攻击方面。从我在网上阅读的逻辑来看,人们建议使用 scrypt 进行多次迭代。

【问题讨论】:

标签: php bcrypt password-encryption php-7


【解决方案1】:

关于bcrypt 和salt 的第一个问题:salt 包含在结果字符串以及cost 以及散列字符串中。三个字符串中的每一个都具有恒定的长度,因此之后可以很容易地检索到。

如需更详尽的解释,请参阅this answer


scryptbcrypt 的更新版本,需要更多 RAM 才能运行。 RAM 要求背后的原因是基于 CPU 周期的加密(基于 I/O)很容易使用现代 GPU、多核等进行暴力破解。另一方面,RAM 不太容易扩展,因此增加的组合RAM + 多个操作理论上是一种更安全的方式。

this great answer了解更多信息。

【讨论】:

    猜你喜欢
    • 2014-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-24
    • 1970-01-01
    • 2020-10-13
    • 1970-01-01
    • 2019-03-30
    相关资源
    最近更新 更多