Generate/storing/reading 安全 MCRYPT 盐

Generate/storing/reading Secure MCRYPT Salt

我知道这可能是一个常见问题,网上有很多关于为密码散列生成安全盐的文章。到目前为止,我已经了解了 mcrypt_create_iv 通常用于加密的初始化向量,它可以用于安全地创建盐,尤其是在针对 MCRYPT_DEV_RANDOM.

出于某种原因,尽管人们已经成功使用它,但每当我使用时:

$Salt = mcrypt_create_iv(22, MCRYPT_DEV_RANDOM);

将其应用于散列,然后将其单独输入到数据库中。当回来验证并把它们放在一起时......它似乎永远无法正常工作。

mcrypt_create_iv 函数生成的某些字符是否与 crypt 不兼容?因为第二个我使用了某种明文盐,无论是否从安全来源生成......它工作正常。但是我想利用特殊字符 mcrypt uses.

(此外,我在 crypt 上使用 $6$ 算法,因此盐只需要 16 个字节)

如有任何帮助,我们将不胜感激!

谢谢:)

我建议使用 password_hash() 系列函数,因为它们会为您完全处理散列。它们还提供未来兼容性,并且通常是 在 PHP.

中处理密码的推荐方法

在这个答案中详细了解如何使用它们:

至于你最初的问题:我怀疑某处存在字符集问题,但没有看到处理哈希的代码(和 table 定义),无法判断。