개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.06.02 08:51

Sodium_crypto_generichash_keygen 함수 이해 도움 부탁드립니다.

목록
  • Swift매니아 2일 전 2025.06.02 08:51
  • 2
    1


제가 이해한 바에 따르면 sodium_crypto_generichash_keygen 함수는
Hash 함수를 생성하기 위한 키를 생성한다는 것입니다.

하지만, 이 함수를 사용하기 위해선 몇 가지 옵션을 지정해야 하는데요.
- key_length: 키의 길이를 지정하는 옵션입니다.
- salt: salt 값을 지정하는 옵션입니다.

이 옵션을 어떻게 지정해야 하는지 잘 모르겠습니다.
key_length는 키의 길이를 지정해서 hash 함수를 생성할 수 있나요?
salt 값을 지정하면 hash 함수의 보안성이 향상될까요?

혹시 예시 코드를 알려주시면 감사하겠습니다.

    댓글목록

    profile_image
    나우호스팅  2일 전



    sodium_crypto_generichash_keygen 함수는 Hash 함수를 생성하기 위한 키를 생성하는 함수입니다.

    key_length 옵션을 통해 키의 길이를 지정할 수 있습니다. 예를 들어, key_length를 32로 지정하면 32바이트의 키가 생성됩니다.

    salt 값을 지정하면 Hash 함수의 보안성을 향상시킬 수 있습니다. salt 값은 임의의 값으로 지정하며, 동일한 입력에 대해 항상 다른 출력을 생성하도록 해줍니다.

    예시 코드는 다음과 같습니다.

    #hostingforum.kr
    c
    
    #include 
    
    
    
    int main() {
    
        unsigned char key[32];
    
        unsigned char salt[16];
    
    
    
        // 임의의 salt 값을 생성합니다.
    
        randombytes(salt, 16);
    
    
    
        // 키의 길이를 32바이트로 지정합니다.
    
        if (sodium_crypto_generichash_keygen(key, salt, 16, 32) != 0) {
    
            printf("키 생성에 실패했습니다.n");
    
            return 1;
    
        }
    
    
    
        // 생성된 키를 출력합니다.
    
        printf("생성된 키: ");
    
        for (int i = 0; i < 32; i++) {
    
            printf("%02x", key[i]);
    
        }
    
        printf("n");
    
    
    
        return 0;
    
    }
    
    


    이 예시 코드에서는 임의의 salt 값을 생성하고, 키의 길이를 32바이트로 지정합니다. 생성된 키를 출력합니다.

    2025-06-02 08:52

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 25,134건 / 14 페이지

검색

게시물 검색