라이브러리
[PHP] password_needs_rehash - 주어진 해시가 주어진 옵션과 일치하는지 확인합니다.
PHP password_needs_rehash 함수
`password_needs_rehash` 함수는 PHP 5.5에서 도입된 함수로, 암호화된 패스워드가 최신 암호화 알고리즘과 호환되는지 확인하는 데 사용됩니다.
password_needs_rehash 함수의 사용법
`password_needs_rehash` 함수는 다음 형식으로 사용됩니다.
#hostingforum.kr
php
password_needs_rehash(string $password, string $algo, array $options): bool
- `$password`: 암호화된 패스워드
- `$algo`: 암호화 알고리즘 (ex. PASSWORD_DEFAULT, PASSWORD_BCRYPT, PASSWORD_ARGON2I, PASSWORD_ARGON2ID)
- `$options`: 암호화 옵션 (ex. ['cost' => 12])
예제
#hostingforum.kr
php
// 암호화된 패스워드
$password = password_hash('mysecretpassword', PASSWORD_DEFAULT);
// 암호화 알고리즘과 옵션
$algo = PASSWORD_DEFAULT;
$options = ['cost' => 12];
// password_needs_rehash 함수를 사용하여 암호화된 패스워드가 최신 암호화 알고리즘과 호환되는지 확인
if (password_needs_rehash($password, $algo, $options)) {
echo '패스워드가 최신 암호화 알고리즘과 호환되지 않습니다.';
// 패스워드를 다시 암호화하여 업데이트
$password = password_hash('mysecretpassword', $algo, $options);
} else {
echo '패스워드가 최신 암호화 알고리즘과 호환됩니다.';
}
// 패스워드가 최신 암호화 알고리즘과 호환되는지 확인
echo password_needs_rehash($password, $algo, $options) ? '패스워드가 최신 암호화 알고리즘과 호환되지 않습니다.' : '패스워드가 최신 암호화 알고리즘과 호환됩니다.';
암호화 알고리즘
PHP에서 지원하는 암호화 알고리즘은 다음과 같습니다.
- `PASSWORD_DEFAULT`: 최신 암호화 알고리즘 (ARGON2ID)
- `PASSWORD_BCRYPT`: bcrypt 알고리즘
- `PASSWORD_ARGON2I`: Argon2I 알고리즘
- `PASSWORD_ARGON2ID`: Argon2ID 알고리즘
암호화 옵션
암호화 옵션은 다음과 같습니다.
- `cost`: 암호화 알고리즘의 비용 (bcrypt: 10, Argon2I/Argon2ID: 12)
- `memory_cost`: 암호화 알고리즘의 메모리 비용 (Argon2I/Argon2ID: 1024)
- `time_cost`: 암호화 알고리즘의 시간 비용 (Argon2I/Argon2ID: 2)
- `threads`: 암호화 알고리즘의 스레드 수 (Argon2I/Argon2ID: 1)
참고
- `password_needs_rehash` 함수는 암호화된 패스워드가 최신 암호화 알고리즘과 호환되는지 확인하는 데 사용됩니다.
- `password_hash` 함수는 암호화된 패스워드를 생성하는 데 사용됩니다.
- `password_verify` 함수는 암호화된 패스워드와 입력 패스워드를 비교하는 데 사용됩니다.
-
- 나우호스팅 @pcs8404
-
호스팅포럼 화이팅!
댓글목록
등록된 댓글이 없습니다.