라이브러리

[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` 함수는 암호화된 패스워드와 입력 패스워드를 비교하는 데 사용됩니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 10,077건 / 340 페이지

검색

게시물 검색