保存电邮密码? - 这样安全吗?

时间:2010-01-18 13:30:10

标签: php mysql passwords

我必须在我的系统中保存用户电子邮件密码(php + mysql)。

我现在这样做: alt text http://codecookie.net/showcase/cred_save.png

这样安全吗?什么时候不是更好的方法呢?

4 个答案:

答案 0 :(得分:4)

咸味哈希是处理“存储”密码的更好方法之一(你实际上并没有真正存储它)。请注意,密码是不可恢复的,因此您的应用应通过“重置密码”功能来满足此要求。

答案 1 :(得分:2)

我建议将hmac与随机生成的长盐一起使用。盐帮助使用“a”和hmac等密码的用户防止长度扩展攻击。

答案 2 :(得分:1)

听起来不错:)因为你没有存储实际的密码而是盐渍哈希,这种方法应该是安全的。

答案 3 :(得分:1)

仅存储散列盐渍密码。在我看来,这基本上是唯一真正安全的方式。加密密码可以解密,哈希盐渍密码需要暴力破解。

function salt_password($password)
{
  $salt_1 = '7a@#!P^@29g';
  $salt_2 = 'mw3*@~2%21mD';
  //whatever random nonesense you can come up with

  return sha1($salt_1.$password.$salt_2);
}

function store_password($user,$password)
{
 $password = salt_password($password);

 //insert username and password in whatever table;
}

function login($user,$password)
{
 //select username and password info from db

 if(salt_password($password) == $selected_password_from_db))
 {
   return true;
 }
 else
 {
   return false
 }
}