我希望使用php创建一个商业网站,我想确保我用户密码的密码足以避免暴力攻击。
请注意,我的服务器和它的php版本不支持blowfish所以我试图想出一个很好的哈希密码方法。
$pw = "12341234";
$salt = 'randomchars';
$initial = sha1($pw);
$hashed = md5($salt . $initial);
还有什么我应该考虑的吗?任何想法将不胜感激!
答案 0 :(得分:2)
答案 1 :(得分:2)
我认为您不知道这样的事实,即您对密码进行散列的方式不会影响通过强力攻击破解密码的可能性(例如,当攻击者试图提供数千种可能的密码时)密码)。它只会使密码安全,以防有人看到数据库中用于表示此密码的值。
答案 2 :(得分:1)
对于暴力攻击,您可以使用谷歌的captcha ..
对于代码密码,您可以使用第一个md5和第二个sha1,因为md5生成32个字符数据sha1 64 ..:)
答案 3 :(得分:0)
您的代码段似乎很安全。你想防止彩虹表攻击,所以双重加密是个好主意。甚至可以生成SHA1明文的MD5哈希列表的计算能力是巨大的,但是在那里使用盐来防止这种攻击仍然没有坏处。
答案 4 :(得分:0)
由于存在crypt
功能,因此无需重新发明轮子。
// generate MD5-hashed password with salt
$password = crypt('mypassword');
// password contains string(34) "$1$bkZO1nIl$y5bzPPwByq.9tYEb64k4e0"
请参阅手册中不同类型哈希的示例,包括MD5和SHA256:http://php.net/manual/en/function.crypt.php
我这还不够,有其他选择:
请记住,如果有人能够将手放在您的数据库上,那么破解用户密码的能力将是您的最小问题。