小编Mas*_*oud的帖子

为什么不使用MD5进行密码散列?

我有一个白帽子黑客的朋友.他说md5并不是那么糟糕,实际上它确实非常安全,只要我们正确使用它.

我相信他是对的.据我所知,有三种方法可以打破哈希:

  1. 使用彩虹桌(可以用长/随机盐保护)
  2. 碰撞(可通过多种盐或哈希来防止 - 如下例所示)
  3. 生成时间(如果我们为每个用户使用足够长的盐值,那么这一点并不重要 - AFAIK)

我和我的朋友认为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)

security passwords hash md5 password-storage

3
推荐指数
2
解决办法
1万
查看次数

标签 统计

hash ×1

md5 ×1

password-storage ×1

passwords ×1

security ×1