如何有效增强MD5哈希的安全性?

3

我的意思是,即使用户选择了相对简单的密码,也要使其难以利用。除了使用额外的加密功能,我想不到其他方法。


2
使用不同的算法。为什么 一定要 使用MD5? - Cody Gray
6个回答

8

您可以采取以下措施:

为了获得最佳安全性,请同时使用所有这些技术。

最后一项在性能方面不是特别高效,但这是故意的。使用最常用的加密哈希函数的问题在于,它们被设计成计算速度很快,这意味着如果密码是字典单词,则破解速度也很快。密钥加固的想法是使算法计算速度变慢,以便即使是弱密码也需要很长时间才能破解。


1
哇,没有提到前缀攻击?我不会给你点赞的。 - rook

3

3

谢谢提供链接,Salt并不免疫暴力破解或字典攻击,但我想现在用它还可以。 - stokkseyri
@stokkseyri,没有什么是免疫于暴力破解的 - 如果攻击者尝试正确的密码(最终会成功),你如何区分攻击者和最终用户???加密的理念就是让暴力破解成为最差的选择。 - tobyodavies

0

把加密安全性和分析留给专家,只需使用更好的加密函数。


我只是在寻找我尚未接触过的方法,我知道我不是专家,也无法做出重大贡献。 - stokkseyri

0

不要使用MD5来哈希密码。对于任何优化吞吐量的哈希函数都是如此。SHA1和MD5的想法是,您可以生成几乎无限量的数据的紧凑表示形式,以便检查其完整性并进行加密签名。

哈希密码的想法是,您无法从哈希中检索密码。但是,大多数密码比它们的哈希短,实施暴力或字典攻击很容易。因此,给定一个哈希,使用的哈希函数可以在本地实现检查逻辑--可能在大规模并行计算机上,例如GPU--并快速破解密码。

您实际上想要做的是使用一种计算强度非常高的哈希函数,以至于哈希需要花费很长时间,即使尝试对4个字符的密码进行暴力攻击也需要数小时。


-1

只需在用户输入的密码中添加一些盐即可。

$salt = 'random string';
md5(sha1(md5($salt . $_POST['password'])));

几乎没有办法破解这个结果。


1
被攻击?我想你的意思是破解。是的,对于这个问题进行字典攻击很容易,只需要使用一个FOR循环即可。 - rook
如果盐的结构/设置被破坏了,或者需要很长时间,我想。 - stokkseyri

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接