PHP를 사용하여 암호화된 비밀번호 해독
많은 애플리케이션이 비밀번호 해시와 같은 암호화 알고리즘을 사용하여 사용자 비밀번호를 안전하게 저장합니다. 그러나 로그인 시도를 확인할 때 입력된 비밀번호를 암호화되어 저장된 버전과 비교하는 것이 중요합니다.
암호화 문제
password_hash는 Bcrypt를 사용합니다. 해싱 알고리즘을 사용하므로 암호화된 비밀번호는 되돌리거나 해독할 수 없습니다. 이는 데이터베이스가 손상되더라도 공격자가 일반 텍스트 비밀번호에 액세스할 수 없도록 보장하는 보안 기능입니다.
해결책: 비밀번호 확인
사용자 비밀번호를 확인하려면 , 비밀번호 확인 기능을 사용하세요:
if (password_verify('input_password', $encrypted_password)) {
// Password matches!
} else {
// Invalid password.
}
이 함수는 입력된 비밀번호를 암호화된 버전과 비교하여 일치하면 true를 반환합니다.
SQL 쿼리 수정
SQL 쿼리에 비밀번호를 입력하려면 매개변수화를 사용하세요:
$sql_script = 'SELECT * FROM USERS WHERE username=?';
이것은 악의적인 사용자가 쿼리 조작.
예
다음은 비밀번호 확인 사용의 예입니다:
$username = $_POST['username'];
$input_password = $_POST['password'];
$sql_script = 'SELECT * FROM USERS WHERE username=?';
if ($result = $conn->query($sql_script, $username)) {
if ($user = $result->fetch_assoc()) {
if (password_verify($input_password, $user['password'])) {
// Login successful!
} else {
// Invalid password.
}
} else {
// User not found.
}
}
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3