我正在制作一个可以与仅支持md5哈希方法(atm)的游戏集成的网站。哪个不再特别安全。但我怎么能让它更强大?我应该只生成长串的随机字母和数字并哈希吗?但是,用户必须将密码保存在计算机上的纸张/文本文件中。
你有什么建议?
答案 0 :(得分:5)
你正在做什么的md5哈希有什么问题?向它投掷更多随机字符不会产生太大影响。
您可以查看SHA hashes以获取md5的替代方法。
答案 1 :(得分:3)
md5的弱点有点夸张,但你可以用sha512代替。这是一种更好的散列算法。
答案 2 :(得分:2)
虽然MD5不是最好的散列算法,但由于它的弱点,它完全取决于你正在做什么。如果它是您唯一的选择,并且您希望在将密码存储到数据库之前对其进行哈希处理,那么一定要这样做。
你说MD5是你现在唯一的选择。这是否意味着您可能会在以后使用其他哈希算法?现在考虑使用MD5,但为自己留下升级路径以使用其他算法。
您可能需要考虑将盐与MD5结合使用。这将有助于抵御一些攻击(例如彩虹表)。
答案 3 :(得分:2)
如果是密码哈希,请考虑使用salted哈希而不是仅使用哈希哈希密码。 See Wikipedia
如果密码是用户选择的,请考虑使用密码强度指示符,并防止它们使用太简单。一件好事是检查它们是否为上/下/数字中的至少两个并通过cracklib运行它们,如果它们失败,则拒绝设置密码。
除此之外你还不错。
答案 4 :(得分:2)
你究竟是什么哈希以及如何使用哈希?
您是否有机会通过存储帐户密码进行身份验证?密码散列的弱点是由于以错误的方式使用散列(任何散列)而不是由固有的散列算法弱点引起的。没有人会蛮力你的MD5哈希,问题将是字典攻击再次知道哈希值(彩虹表)。保护是使用HMAC哈希或类似的东西,比如'盐渍'哈希。
如果你认为使用不同的哈希算法会给你带来任何好处,我担心你走错了路。虽然SHA1或SHA256具有更强的加密属性并且会在更长的时间内遭受强力攻击,但即使是stronges hash如果使用不当也会毫无用处。另一方面,MD5在正常使用时可以正常工作。