저는 PHP에 비교적 익숙하지 않습니다. 누군가 제가 복어와 지하실을 이해하는 데 도움이되기를 바랍니다. 암호화 된 비밀번호를 데이터베이스에 삽입하려고했지만 사용자 인증에 문제가 있습니다. 나는 다른 게시물뿐만 아니라 블로그/자습서를보고 있었고 그 중 어떤 것도 저장된 암호를 인증하지 않는 것 같습니다. this blog 및 this post 반 도움이 발견되었지만 암호가 저장되면 인증을 알아낼 수 없습니다. 올바른 암호를저장된 해시로 사용자 인증 - Crypt and Blowfish
function user_authenticate($username, $password_input){
include '../connection/dbconnect.php';
$errors = "";
if ($user_exists->num_rows < 1 || $user_exists->num_rows > 1){
//other checks - username, activated status, etc.
} else{
$user_match = $connect->query("SELECT `user_id` FROM `users` WHERE `user_name` = '$username' LIMIT 1");
$user_id = $user_match->fetch_assoc();
$get_pw = $connect->query("SELECT `pass_w` FROM `users` WHERE `user_name` = '$username'");
$pw_match = $get_pw->fetch_assoc();
if ($user_match->num_rows != 1 || crypt($password_input, $pw_match['pass_w']) != $pw_match['pass_w']){
$errors = 'That username/password combination is incorrect';
return $errors;
} else{
return true;
}
}
타이핑이 저를 준다 "
로그인이에서 다음function crypt_pass($pass){
if(defined("CRYPT_BLOWFISH") && CRYPT_BLOWFISH){
$salt = '$2y$11$'.substr(md5(uniqid(rand(), true)), 0, 22);
return crypt($pass, $salt);
}
}
이 기능은 다음과 같습니다 등록에서 는 사용자의 암호 입력은 다음 users
테이블에 저장이 기능을 사용하여 암호화됩니다 해당 사용자 이름/암호 조합이 잘못되었습니다. " 나는 내가 읽은 글의 지시대로 crypt()
을 사용하고 있다고 생각한다. 어떤 도움을 주셔서 감사합니다, 감사합니다! 이 (당신이 password_hash 제공) 등) (복어 너 한테를 사용하는 방법을 password_verify 것 https://github.com/ircmaxell/password_compat 및 php5.5