include 'lib/php/PasswordHash.php';
$hash = $_GET['hash'];
$pass = $_GET['pass'];
$hasher = new PasswordHash(8, false);
$pass = $hasher->HashPassword($pass);
echo "Original:<br>" . $pass . "<br>";
$checked = $hasher->CheckPassword($pass, $hash);
echo "Hashed:<br>" . $checked . "<br>";
echo "<br>";
echo "Are they equal? <b>";
if($pass == $checked){ echo "Yep!</b>";} else{
echo "Nope. </b>";
}
믿을 수 없을 정도로 간단한 코드는 의도 한대로 작동하지 않습니다. 예, 패스 변수가 해시되고 올바르게 출력되지만 CheckPassword()가 아무 것도 출력하지 못합니다. "hello"라는 간단한 단어를 테스트하여 함수에 직접 삽입했습니다 (예 : CheckPassword ('$ 2 ...', '$ 2 ...'), 여전히 아무 것도 출력하지 않음)PHPass가 해시 검사를 거부합니다.
실행 중 XAMPP Windows에서 문제가 될 수밖에 없다는 결론을 내 렸습니다. 실제 프로젝트보다는이 코드를 사용하여 데이터베이스를 제거하고이 문제를 발견했습니다.
코드의 추악함으로 구토를 피우지 만, 작동시키려는 필사적 인 시도입니다.
이 코드를 직접 실행하는 경우 '통과'및 '해시'GET 변수를 모두 배치해야합니다 이 URL을 테스트 해보세요. 내가 가장 끔찍한 짓을 한 것 같습니다. 실수로 어딘가에서 내 환경을 비난하지 않는다고 확신하지 못합니다.
편집 :
내가 잘못 CheckPassword
을 사용하고
$hash = $_GET['hash'];
$hasher = new PasswordHash(8, false);
$hash = $hasher->HashPassword($pass);
echo $hash;
'CheckPassword'의'$ pass'는 평문이어야합니다, 그렇죠? – zerkms
내가 만든 편집 내용은 'hello'라는 단어에 대한 해시를 생성 한 다음 맨 위에있는 코드의 URL에 넣는 방법을 보여줍니다. – SacredSkull