라이브러리
[PHP] sodium_crypto_pwhash_str_needs_rehash - 비밀번호를 다시 해싱할지 여부를 결정합니다.
PHP에서 Sodium Crypto Pwhash Str Needs Rehash
PHP 7.2 버전부터 sodium_crypto_pwhash_str_needs_rehash 함수가 제공됩니다. 이 함수는 비밀번호 해시를 생성할 때 사용하는 알고리즘을 선택하고, 비밀번호가 이전 버전의 알고리즘으로 해시된 경우 업그레이드할 필요가 있는지 확인하는 데 사용됩니다.
사용 방법
sodium_crypto_pwhash_str_needs_rehash 함수는 두 개의 인자를 받습니다.
- `$hash`: 이전 버전의 비밀번호 해시
- `$algo`: 업그레이드할 알고리즘 (예: `SODIUM_CRYPTO_PWHASH_ALG_DEFAULT`)
함수는 `$hash`가 이전 버전의 알고리즘으로 해시된 경우 `true`를 반환하고, `$hash`가 업그레이드된 알고리즘으로 해시된 경우 `false`를 반환합니다.
예제
#hostingforum.kr
php
// 이전 버전의 알고리즘으로 비밀번호 해시 생성
$old_hash = sodium_crypto_pwhash_str('password', 10, SODIUM_CRYPTO_PWHASH_ALG_DEFAULT);
// 업그레이드할 알고리즘 선택
$upgraded_algo = SODIUM_CRYPTO_PWHASH_ALG_ARGON2ID13;
// 업그레이드 필요 여부 확인
if (sodium_crypto_pwhash_str_needs_rehash($old_hash, $upgraded_algo)) {
echo "업그레이드 필요";
} else {
echo "업그레이드 필요 없음";
}
업그레이드 방법
업그레이드할 알고리즘으로 비밀번호 해시를 생성할 때, 이전 버전의 해시를 업그레이드할 수 있습니다. 예를 들어, 이전 버전의 해시를 업그레이드할 때, 다음 코드를 사용할 수 있습니다.
#hostingforum.kr
php
// 이전 버전의 알고리즘으로 비밀번호 해시 생성
$old_hash = sodium_crypto_pwhash_str('password', 10, SODIUM_CRYPTO_PWHASH_ALG_DEFAULT);
// 업그레이드할 알고리즘 선택
$upgraded_algo = SODIUM_CRYPTO_PWHASH_ALG_ARGON2ID13;
// 업그레이드 필요 여부 확인
if (sodium_crypto_pwhash_str_needs_rehash($old_hash, $upgraded_algo)) {
// 업그레이드할 알고리즘으로 비밀번호 해시 생성
$new_hash = sodium_crypto_pwhash_str('password', 10, $upgraded_algo);
echo "업그레이드 완료: $new_hash";
} else {
echo "업그레이드 필요 없음";
}
참고
- `SODIUM_CRYPTO_PWHASH_ALG_DEFAULT`: 기본 알고리즘 (Argon2i)
- `SODIUM_CRYPTO_PWHASH_ALG_ARGON2ID13`: Argon2id 알고리즘
- `SODIUM_CRYPTO_PWHASH_ALG_ARGON2ID19`: Argon2id 알고리즘 (19 단계)
이 예제는 PHP 7.2 버전 이상에서 사용할 수 있습니다. 이전 버전의 PHP에서는 sodium_crypto_pwhash_str_needs_rehash 함수가 제공되지 않습니다.
-
- 나우호스팅 @pcs8404
-
호스팅포럼 화이팅!
댓글목록
등록된 댓글이 없습니다.