大家好我正在为我的数据库整理一个新的登录系统,希望比我原来的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);
答案 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的东西