我用过
md5(sha1(rand()))
这将为我提供 2 级加密和 32 长度的输出哈希,例如
cbc7a20f14eab9262efe0adb21074d0a
但是我怎么能让散列长度为 255(例如)?
我用过
md5(sha1(rand()))
这将为我提供 2 级加密和 32 长度的输出哈希,例如
cbc7a20f14eab9262efe0adb21074d0a
但是我怎么能让散列长度为 255(例如)?
无论你在做什么,现在就停下来。
重复调用相同或不同的加密函数不会给您提供多级加密。如果有的话,它通过更容易找到哈希冲突来削弱加密。
此外,md5 和 sha-1 都不是密码安全的。
如果您尝试创建密码,请使用 bcrypt 或 PBKDF2(并且仅使用一次)。不要忘记使用独特的盐和高迭代次数。
您可以使用 KBKDF(基于密钥的密钥派生函数),如 NIST SP 800-108 或 HKDF 中指定的函数,将 bcrypt 或 PBKDF2 的输出扩展为更多字节。但是请注意,这不会将安全级别提高到输出中的字节数。
如果你想创建加密随机数,任何依赖rand()
都不会有任何好处。无论您使用哪个哈希或 KDF。
使用mcrypt_create_iv ($size, MCRYPT_DEV_URANDOM)
它,它通常有一个$size
参数,同时解决你的长度问题。