PHP와 SQL을 사용하여 로그인/등록 양식을 설정하려고하고 있는데 암호 보호를 위해 password_hash() 및 password_verify()를 사용하고 있습니다. password_hash()는 잘 작동하지만 해쉬 된 패스워드 인 password_verify()로 패스워드를 검증하려고하면 FALSE를 리턴한다. 나는 PHP를 처음 사용하고 이것이 왜 일어나는지 확신 할 수 없다.
PHP 암호가 해싱하지 않는 것을 확인 하시겠습니까?
<?php
include 'db.php';
$username = mysqli_real_escape_string($con, $_POST['username']);
$password = mysqli_real_escape_string($con, ($_POST['password']));
$sql = "SELECT * FROM users WHERE `username`= '$username' ";
$query = mysqli_query($con, $sql);
while ($rows = mysqli_fetch_array($query)):
$user = $rows['username'];
$email = $rows['email'];
$passhash = $rows['password'];
endwhile;
$hash = password_verify($password, $passhash);
// just echoing so i know they are the correct values
echo $user.'<br>';
echo $email.'<br>';
echo $password.'<br>';
echo $hash.'<br>';
echo $passhash.'<br>';
if ($hash == 0) {
echo 'error';
}
?>
여기에 코드입니다.
암호 해싱의 전체 지점이 암호를 바꿀 수 없거나 호출 할 때 해쉬 할 수없는 암호입니까? –
Dehash? 흥미 롭군요 ... 해시는 뒤집을 수 없습니다 ... – Selvin
Errrr ......... 뭐라고 요? DEhashing? 도살을하고 쇠고기에 넣은 후에 황소를 다시 집어 넣으려고 한 적이 있습니까? 잘 거기에 간다. –