0

大家好,我正在为我的数据库建立一个新的登录系统,希望它比我的旧 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);
4

2 回答 2

0

我希望$user已经逃脱了?无论如何,切换到 PDO 或 MySQLi 而不是使用mysql_.

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

function hash_password($password, $salt) {
    return crypt($password, '$2y$11$' . $salt);
}
于 2012-08-28T00:53:56.440 回答
0

$sql="SELECT * FROMusersWHERE username='$user'";这部分对 SQL 注入开放。使用 PDO 或 MySQLi 之类的东西

于 2012-08-28T00:54:09.353 回答