$pass = substr(md5($_SERVER['REMOTE_ADDR'].microtime().rand(1,100000)),0,6);
$insert = mysql_query("INSERT INTO users(username, password) VALUES( '".$username."', '".md5($pass)."')");
或
$salt = "zfgse5tfgHk2jdf4hGiuyeV9trejkewQ5kjujPhysftf7agfd";
$pass = crypt($password, "$1$".$salt);
$insert = mysql_query("INSERT INTO users (username, password) VALUES ('".$username."', '".$pass."')");
我正在从php注册表单中保存表单数据。以上哪些代码是安全的?有什么比这些更好的吗?
答案 0 :(得分:2)
方法#1将彻底破坏一切,你永远无法再次登录。相当安全(除非你没有逃脱$username
,在这种情况下它完全没有价值),但可能不是你的意图。
方法#2将起作用;但看起来有点愚蠢,复杂的做一些应该直截了当的事情。
以下是我通常使用的内容:
public static function Hash($value) {
return hash('sha512', hash('sha512', $value) . Config::HashSalt);
}
其中Config::HashSalt
是你的长,更随机的盐串。这需要在课堂上。以下是结构示例:https://github.com/minitech/ReTicket/blob/master/config.php
答案 1 :(得分:0)
第二个选项(首先是完全错误的),但略有改变: