이전 게시물을 수정했습니다. crypt() 함수를 시도하고 password_hash() 및 password_verify()를 사용하여 데이터베이스에서 오는 암호화 된 비밀번호를 확인하려고 시도했지만 각 호출에서 password_hash() 함수는 다른 암호화 된 문자열을 반환하고 password_verify()는이를 일치시킬 수 없습니다.crypt() 및 password_hash() 함수를 사용하여 암호화 한 후 암호가 일치하지 않습니다.
이것이 내가하는 방법입니다.
//please ignore the syntax error if any
$data = '11';
$dbpass = password_hash($data, PASSWORD_BCRYPT);
echo $dbpass; // displays the random strings on each page refresh.
일단 암호가 데이터베이스에 저장되면 로그인 프로세스 중에 일치하지 않습니다. 아래는 내 실제 기능입니다.
private function process_data($password){
$password = __STR.$password.__STR;
return password_hash($password, PASSWORD_BCRYPT);
}
private function processed($login_password, $dbpassword){
$login_password = __STR.$login_password.__STR;
return password_verify($login_password, $dbpassword);
}
암호 해시 문자열을 만들기위한 각 함수 호출에서이 함수는 다음에 다른 문자열을 반환합니다.
MD5를 사용하여 암호를 해시하는 이유는 다음과 같습니다. http://www.php.net/manual/en/faq.passwords.php – Tchoupi
나는 더 나은 방법이라고 생각합니다. 각 암호에 고유 한 소금을 제공합니다. – Ethan
당신에게 동의합니다. 나는 MD5 암호화의 반대가 인터넷을 통해 쉽게 이용할 수 있다는 것을 보았습니다. 하지만 해커가이 암호가 무엇인지 파악하기 어렵도록 암호를 추가하려고했습니다. 이게 좋은 생각 아닌가요? 나는 항상 전문가의 견해를 찾는다. –