sodium_crypto_pwhash_str

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_pwash_str — ASCII 인코딩 해시 가져오기


설명

sodium_crypto_pwhash_str(string $password, int $opslimit, int $memlimit): string

임의로 생성된 솔트, 메모리 및 CPU 제한과 함께 CPU 및 메모리 하드 해시 알고리즘을 사용하여 암호 저장에 적합한 ASCII 인코딩 해시를 생성합니다.


매개변수

password
string; 해시를 생성할 암호입니다.
opslimit
수행할 최대 계산량을 나타냅니다. 이 숫자를 높이면 함수가 키를 계산하는 데 더 많은 CPU 주기가 필요합니다. SODIUM_CRYPTO_PWHASH_OPSLIMIT_INTERACTIVE, SODIUM_CRYPTO_PWHASH_OPSLIMIT_MODERATESODIUM_CRYPTO_PWHASH_OPSLIMIT_SENSITIVE와 같이 의도한 용도에 따라 작업 제한을 적절한 값으로 설정하는 데 사용할 수 있는 상수가 있습니다.
memlimit
함수가 사용할 최대 RAM 양(바이트)입니다. SODIUM_CRYPTO_PWHASH_MEMLIMIT_INTERACTIVE, SODIUM_CRYPTO_PWHASH_MEMLIMIT_MODERATESODIUM_CRYPTO_PWHASH_MEMLIMIT_SENSITIVE와 같이 적절한 값을 선택하는 데 도움이 되는 상수가 있습니다. 일반적으로 이들은 일치하는 oplimit 값과 쌍을 이루어야 합니다.

반환 값

해시된 암호를 반환합니다.

동일한 비밀번호에서 동일한 비밀번호 해시를 생성하려면 opslimitmemlimit에 동일한 값을 사용해야 합니다. 이들은 생성된 해시 내에 포함되므로 해시를 확인하는 데 필요한 모든 것이 포함됩니다. 이를 통해 sodium_crypto_pwash_str_verify() 함수는 다른 매개변수를 별도로 저장할 필요 없이 해시를 확인할 수 있습니다.


Examples

예제 #1 sodium_crypto_pwash_str() 예제

                  
<?php
$password = 'password';
echo sodium_crypto_pwhash_str(
    $password,
    SODIUM_CRYPTO_PWHASH_OPSLIMIT_INTERACTIVE,
    SODIUM_CRYPTO_PWHASH_MEMLIMIT_INTERACTIVE
);
                  
                

위의 예는 다음과 유사한 결과를 출력합니다.

$argon2id$v=19$m=65536,t=2,p=1$oWIfdaXwWwhVmovOBc2NAQ$EbsZ+JnZyyavkafS0hoc4HdaOB0ILWZESAZ7kVGa+Iw
                

노트

메모: 해시는 Argon2ID 알고리즘을 사용하여 계산되어 GPU 및 부채널 공격에 대한 저항을 제공합니다. password_hash() 함수와 달리 salt 매개변수가 없고(솔트는 자동으로 생성됨) opslimitmemlimit 매개변수는 선택 사항이 아닙니다.


기타