php - "random"盐比 "unique"盐有什么好处?

标签 php security passwords hash phpass

我目前正在编写一个程序,其中一部分涉及安全地创建密码哈希以存储在数据库中,我遇到了 phpass框架,这似乎是强烈推荐的。在 phpass 中,他们似乎竭尽全力生成一种尽可能真正随机的盐,用于哈希(例如,从/dev/urandom 读取)。

我的问题是,与简单地使用 uniqid() 相比,这样做有什么好处?重点不就是确保用于散列的盐彼此不同而不是随机的吗?使用真正随机的盐实际上不会比使用独特的盐更糟糕,因为它可能会产生碰撞而 uniqid() 不会?

编辑:我的问题不是关于计算机环境中是否存在“真正的”随机性,所以也许我措辞有误,但我的问题更多的是“更多”的随机盐是否有任何好处比盐更独特。

最佳答案

我正试图找到对一些漏洞利用先例的引用(并且苦苦挣扎!),但是加密随机盐的想法与 uniqid() 生成的随机值相反,有助于防止对通过密文的加密方案。由伪随机数生成器生成的具有可预测模式(例如唯一 ID)的盐从密文中提取了一些可变性,当然,在密码学中,不可预测性就是你所需要的寻找。

当然,如果在您选择的框架(即 .NET 中的 RNGCryptoServiceProvider)中可以使用密码安全的随机数生成器,您会选择它而不是更可预测的模式。我会看看是否可以找到一些好的先例或白皮书。

关于php - "random"盐比 "unique"盐有什么好处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7047741/

相关文章:

security - javacard 的最终安全步骤

android - 如何使应用程序从硬重置Android手机中幸存?

email - Gmail SMTP 需要 "app password"吗?

php - .htaccess 重写 - PHP 将变量获取到假文件夹

php - 检查我的网站时,源代码中缺少 wp-content 文件

php - 掩盖信用卡和银行账户信息

php - 通过 JSON 将 HTML 从 PHP 发送到 javascript

security - 服务器到服务器 REST API 安全性

passwords - Python wpa_passphrase (linux binary) 实现仅生成部分 psk

passwords - TeamCity用户名/密码