사용자를 위해 암호를 저장하고 싶다고 가정하면 PHP 5.5의 password_hash()
함수 (또는 PHP 5.3.7 이상에서는이 버전을 사용하는 것이 올바른 방법일까요? https://github.com/ircmaxell/password_compat)? PHP 5.5의 password_hash 및 password_verify 함수 사용
$options = array("cost" => 10, "salt" => uniqid());
$hash = password_hash($password, PASSWORD_BCRYPT, $options);
은 그럼 내가 할 것이다 : 데이터베이스에 삽입하려면
mysql_query("INSERT INTO users(username,password, salt) VALUES($username, $hash, " . $options['salt']);
.
그런 다음 확인 :$row = mysql_fetch_assoc(mysql_query("SELECT salt FROM users WHERE id=$userid"));
$salt = $row["salt"];
$hash = password_hash($password, PASSWORD_BCRYPT, array("cost" => 10, "salt" => $salt));
if (password_verify($password, $hash) {
// Verified
}
흠, 뭔가 여기에 이상한 거기, 당신은 배열을이 작동하지 않습니다 –
고정 후? "비용"=> 10, 아무것도. –
을 당신은 여전히 누락)? 또한 5.5에서 사용되지 않는'ext/mysql'을 사용하고 있습니다. –