
sodium_crypto_pwhash_str 함수는 비밀번호 해시를 생성하는 함수로, salt와 password를 기반으로 해시를 생성합니다.
salt size를 지정할 때는 16 byte로 설정하는 것이 일반적입니다. 하지만, 이에 대한 최소 및 최대 크기는 16 byte와 32 byte 사이로 설정되어야 합니다. 따라서, salt size를 16 byte로 설정한 것은 맞습니다.
hash size를 지정할 때는 sodium_pwhash_str_needs_rehash 함수를 사용하여 알맞은 해시 크기를 결정해야 합니다. 이 함수는 salt와 hash를 기반으로 hash 크기를 계산합니다. 위 코드에서, hash size를 32 byte로 설정한 것은 맞지 않습니다. 대신, sodium_pwhash_str_needs_rehash 함수를 사용하여 hash 크기를 계산하여 설정해야 합니다.
예를 들어, 다음과 같이 코드를 수정할 수 있습니다.
#hostingforum.kr
c
int main() {
char password[] = "mysecretpassword";
unsigned char salt[16];
unsigned char hash[64];
size_t hashlen = 0;
sodium_init();
sodium_pwhash_str_needs_rehash(salt, 16, hash, 64); // hash size를 64 byte로 설정
if (sodium_pwhash_str(salt, 16, password, strlen(password), hash, 64) != 0) {
printf("Password hashing failed." );
return 1;
}
return 0;
}
이러한 방법으로, salt size와 hash size를 적절히 설정하여 password hashing을 수행할 수 있습니다.
2025-04-20 03:02