我的意思是,即使用户选择了相对简单的密码,也要使其难以利用。除了使用额外的加密功能,我想不到其他方法。
我的意思是,即使用户选择了相对简单的密码,也要使其难以利用。除了使用额外的加密功能,我想不到其他方法。
不要犹豫,阅读一下 ;)(并在SO上提问)您需要使用单独的盐对密码进行加密,以便相同的密码不会产生相同的哈希值。
把加密安全性和分析留给专家,只需使用更好的加密函数。
不要使用MD5来哈希密码。对于任何优化吞吐量的哈希函数都是如此。SHA1和MD5的想法是,您可以生成几乎无限量的数据的紧凑表示形式,以便检查其完整性并进行加密签名。
哈希密码的想法是,您无法从哈希中检索密码。但是,大多数密码比它们的哈希短,实施暴力或字典攻击很容易。因此,给定一个哈希,使用的哈希函数可以在本地实现检查逻辑--可能在大规模并行计算机上,例如GPU--并快速破解密码。
您实际上想要做的是使用一种计算强度非常高的哈希函数,以至于哈希需要花费很长时间,即使尝试对4个字符的密码进行暴力攻击也需要数小时。
只需在用户输入的密码中添加一些盐即可。
$salt = 'random string';
md5(sha1(md5($salt . $_POST['password'])));
几乎没有办法破解这个结果。