使用crypt()和PHP创建并验证sha-512密码哈希值

时间:2014-12-20 17:27:05

标签: php hash

PHP函数crypt()为密码创建哈希。它需要随机盐的第二个参数。该盐还可以包括关于使用哪种算法的附加指令。看起来像黑客,但那是API。所以我添加$6$前缀来获取我需要的SHA-512哈希。 (不能将bcrypt用于外部非PHP应用程序,该应用程序也应该能够验证散列。必须从PHP和其他具有有限算法支持的应用程序验证散列。)

现在有两个问题,PHP手册让我独自一人:

1)我在哪里获得随机盐以及需要满足哪些要求?我已经阅读了openssl_random_pseudo_bytes,我认为我只是对其进行了64位编码。但是我需要多少源字节或编码字符?

2)如何再次在PHP中验证这样的哈希?这样做似乎不是一个单一的功能。我相信我可以使用与以前相同的盐再次调用crypt,但为此,我需要从存储的密码哈希中提取哈希和算法以及其他所需的内容。我看到过具有可变数量的$字符的哈希值,因此它看起来不像是一个很好的分隔符。

我已经阅读了关于phpass但是它不支持sha-512,所以我无法使用它。

PHP版本为5.5.9,因此某些功能可能无法使用。

0 个答案:

没有答案