-1

我用过

md5(sha1(rand()))

这将为我提供 2 级加密和 32 长度的输出哈希,例如

cbc7a20f14eab9262efe0adb21074d0a

但是我怎么能让散列长度为 255(例如)?

4

2 回答 2

6

无论你在做什么,现在就停下来。

重复调用相同或不同的加密函数不会给您提供多级加密。如果有的话,它通过更容易找到哈希冲突来削弱加密。

此外,md5 和 sha-1 都不是密码安全的。

如果您尝试创建密码,请使用 bcrypt 或 PBKDF2(并且仅使用一次)。不要忘记使用独特的盐和高迭代次数。

您可以使用 KBKDF(基于密钥的密钥派生函数),如 NIST SP 800-108 或 HKDF 中指定的函数,将 bcrypt 或 PBKDF2 的输出扩展为更多字节。但是请注意,这不会将安全级别提高到输出中的字节数。

于 2013-01-27T01:29:05.383 回答
0

如果你想创建加密随机数,任何依赖rand()都不会有任何好处。无论您使用哪个哈希或 KDF。

使用mcrypt_create_iv ($size, MCRYPT_DEV_URANDOM)它,它通常有一个$size参数,同时解决你的长度问题。

于 2013-01-27T17:37:59.223 回答