라이브러리

[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 함수가 제공되지 않습니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 8,985건 / 174 페이지

검색

게시물 검색