
password_verify 함수는 비밀번호를 확인할 때 사용하는 함수입니다. 이 함수는 비밀번호를 해시화 한 후, DB에 저장된 해시와 비교합니다.
password_verify 함수의 형식은 다음과 같습니다.
#hostingforum.kr
php
bool password_verify(string $password, string $hashedPassword)
password_verify 함수는 두 개의 매개변수를 받습니다. 첫 번째 매개변수는 사용자가 입력한 비밀번호, 두 번째 매개변수는 DB에 저장된 해시입니다.
비밀번호를 해시화 할 때는 password_hash 함수를 사용합니다. password_hash 함수의 형식은 다음과 같습니다.
#hostingforum.kr
php
string password_hash(string $password, string $algo, array $options)
password_hash 함수는 세 개의 매개변수를 받습니다. 첫 번째 매개변수는 비밀번호, 두 번째 매개변수는 사용할 해시 알고리즘, 세 번째 매개변수는 옵션입니다.
해시 알고리즘은 다음과 같습니다.
- PASSWORD_DEFAULT : PHP에서 기본적으로 사용하는 해시 알고리즘입니다.
- PASSWORD_BCRYPT : Bcrypt 해시 알고리즘을 사용합니다.
- PASSWORD_ARGON2I : Argon2 해시 알고리즘을 사용합니다.
- PASSWORD_ARGON2ID : Argon2 해시 알고리즘을 사용하며, ID-based 해시를 생성합니다.
salt는 비밀번호를 해시화 할 때 사용하는 임의의 문자열입니다. salt를 사용하면 비밀번호를 해시화 할 때마다 다른 해시가 생성되므로, 공격자가 비밀번호를 추측할 때 어려움이 생깁니다.
PHP 7.0 이상부터는 password_hash 함수에서 salt를 자동으로 생성합니다. 따라서, salt를 사용할 필요가 없습니다.
예제를 들어보겠습니다.
#hostingforum.kr
php
// 비밀번호를 해시화 할 때
$hashedPassword = password_hash("password", PASSWORD_DEFAULT);
// 비밀번호를 확인할 때
if (password_verify("password", $hashedPassword)) {
echo "비밀번호가 일치합니다.";
} else {
echo "비밀번호가 일치하지 않습니다.";
}
2025-05-16 19:24