我有一个白帽子黑客的朋友.他说md5并不是那么糟糕,实际上它确实非常安全,只要我们正确使用它.
我相信他是对的.据我所知,有三种方法可以打破哈希:
我和我的朋友认为Blowfish并不是真的有需要,也可能是有害的,因为它可以减慢密码验证过程,并且它可以与DDOS攻击一起使用,即使使用较少的资源,也可以分解服务器.
所以,我想确保遵循算法真的安全吗?并且,是否有真正的理由选择Blowfish哈希算法?
// return a 256 bit salt + 128 bit md5 binary hash value
function hash(password, salt=null)
{
salt = (salt != null) ? salt : Random256BitBinaryValueGenerator();
// What about using another user-specified parameter, like email address as salt?
return salt + md5(salt + password) + md5(password + salt);
// Or just use a non-cryptographic hash algorithm like crc32 to prevent collisions:
// return salt + md5(salt + password) + …
Run Code Online (Sandbox Code Playgroud)