
sodium_crypto_pwhash_scryptsalsa208sha256 함수는 비밀번호 해시를 생성하기 위해 사용되는 함수입니다. 이 함수의 기본적인 사용 방법은 다음과 같습니다.
1. 비밀번호와 소금값(salt)을 입력합니다. 소금값은 고유한 값으로, 동일한 비밀번호에 대해 항상 다른 해시 값을 생성하도록 합니다.
2. n, r, p, memlimit 파라미터를 설정합니다. 이 파라미터는 Scrypt 알고리즘의 속도와 안전성을 결정합니다.
- n: Scrypt 알고리즘의 반복 횟수를 결정합니다. 일반적으로 2^14 (16,384) 이상의 값을 사용합니다.
- r: Scrypt 알고리즘의 블록 크기를 결정합니다. 일반적으로 8 이상의 값을 사용합니다.
- p: Scrypt 알고리즘의 블록 크기를 결정합니다. 일반적으로 1 이상의 값을 사용합니다.
- memlimit: Scrypt 알고리즘의 메모리 사용량을 결정합니다. 일반적으로 2^22 (4,194,304) 이상의 값을 사용합니다.
이러한 파라미터를 설정한 후, sodium_crypto_pwhash_scryptsalsa208sha256 함수를 호출하여 비밀번호 해시를 생성할 수 있습니다.
예를 들어, 다음 코드는 비밀번호 "password"와 소금값 "salt"를 사용하여 해시를 생성합니다.
#hostingforum.kr
c
#include
int main() {
unsigned char password[] = "password";
unsigned char salt[] = "salt";
unsigned char hash[64];
size_t hash_len = 64;
if (sodium_crypto_pwhash_scryptsalsa208sha256(hash, &hash_len, password, strlen(password), salt, strlen(salt), 2^14, 8, 1, 2^22) == 0) {
printf("Hash: %sn", sodium_bin2hex(hash, hash_len));
} else {
printf("Error: %sn", sodium_strerror(errno));
}
return 0;
}
이 코드는 Scrypt 알고리즘의 기본 설정인 n=2^14, r=8, p=1, memlimit=2^22을 사용합니다. 비밀번호 "password"와 소금값 "salt"를 사용하여 해시를 생성하고, 생성된 해시 값을 출력합니다.
2025-06-02 18:01