我应该在openssl_random_pseudo_bytes中使用多少字节

时间:2014-05-04 10:06:00

标签: php security passwords openssl secret-key

我想用

生成一个40字节的随机密码
k = ???
password = sha1(openssl_random_pseudo_bytes(k))

k的推荐值是什么,所以密码足够强大?

1 个答案:

答案 0 :(得分:2)

SHA1输出20个字节,因此给它20个字节的随机输入就足够了。可以这样想:攻击者可以尝试猜测密码或尝试猜测SHA1输入。只要SHA1输入至少与输出一样长,他就可以更容易地输出输出,因此输入足够长。

但是,我想知道为什么你在那些随机字节上使用SHA1。 openssl_random_pseudo_bytes应该已经为您提供了随机字节,您只需使用bin2hex左右转换为十六进制。