通过md5和sha1生成随机散列

时间:2013-01-27 01:26:48

标签: php encryption random md5 sha1

我用过

md5(sha1(rand()))

这将给我2级加密和输出哈希,长度为32,如

cbc7a20f14eab9262efe0adb21074d0a

但我怎么能让哈希长度为255(例如)?

2 个答案:

答案 0 :(得分:6)

无论你做什么,现在就停止它。

重复调用相同或不同的加密函数 不会执行任何操作,例如为您提供多级加密 。如果有的话,它会通过更容易找到哈希冲突来弱化加密。

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

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

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

答案 1 :(得分:0)

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

使用mcrypt_create_iv ($size, MCRYPT_DEV_URANDOM)代替,它可以有一个$size参数,同时解决您的长度问题。