我用过
md5(sha1(rand()))
这将给我2级加密和输出哈希,长度为32,如
cbc7a20f14eab9262efe0adb21074d0a
但我怎么能让哈希长度为255(例如)?
答案 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
参数,同时解决您的长度问题。