问候,
我目前正在开发一个涉及登录系统的项目,该系统旨在尽可能安全地进行设置.
我要问的是,MD5中的每个元素(从密码字段获取)是否值得,通过它向每个要使用MD5进行哈希处理的char元素添加一个salt,完成后,添加全部从每个角色的哈希值,然后添加一个单独的盐,然后MD5再次?
这实际上是安全的,还是只是矫枉过正?
解决方法:
根本不安全,因为密钥空间只有255.在每个字母上添加一个盐只会在整个字符串中添加相同的盐,并且可能会减少哈希的熵而不是增加它.
正确的解决方案是使用正确的密码散列算法(如bcrypt,scrypt或pbkdf2)并避免编写自己的算法.
MD5(以及SHA-1,SHA-2等)非常快,无论如何都很容易破解密码.
编辑
今天我们看到了一个很好的例子:iPhone hacker publishes secret Sony PlayStation 3 key
However, Sony wrote their own signing software, which used a constant number for each signature.