关于hmac功能的提示,用于登录

时间:2012-08-28 00:50:16

标签: php mysql security login hmac

大家好我正在为我的数据库整理一个新的登录系统,希望比我原来的md5密码加密页面更安全。 我只是想知道我是否可以得到一些关于我将要用它的代码的提示...主要是如果有任何事情我可以或应该做以提高这部分的安全性...非常感谢...

$sql="SELECT * FROM `users` WHERE username='$user'";
$result=mysql_query($sql);


while($rows=mysql_fetch_array($result)){
$salt=$rows['salt'];
$site_key=$rows['site_key'];
}

      function hash_password($salt,$pass,$site_key) {
  global $site_key;
  return hash_hmac('sha512',$pass . $salt, $site_key);
}
$password=hash_password();
$hashed= mysql_real_escape_string($password);

2 个答案:

答案 0 :(得分:0)

我希望$user已被转义?无论如何,切换到PDO或MySQLi而不是使用mysql_

对于散列密码,不要只使用SHA-512或类似的东西;那些可以计算得太快。我推荐bcrypt:

function hash_password($password, $salt) {
    return crypt($password, '$2y$11$' . $salt);
}

答案 1 :(得分:0)

$sql="SELECT * FROM个用户WHERE username='$user'";此部分对SQL注入开放。使用类似PDO或MySQLi的东西