0

我想生成一个 40 字节的随机密码

k = ???
password = sha1(openssl_random_pseudo_bytes(k))

k 的推荐值是多少,所以密码足够强?

4

1 回答 1

2

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

但是,我想知道您为什么要在这些随机字节上使用 SHA1。应该已经给你随机字节,你可以简单地使用左右openssl_random_pseudo_bytes转换为十六进制。bin2hex

于 2014-05-04T10:20:49.300 回答