개발자 Q&A

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

2025.05.02 06:24

Sodium Library 관련 질문

목록
  • 웹앱구루 1일 전 2025.05.02 06:24
  • 6
    1
제가 공부하고 있는 Sodium Library의 암호화 관련 함수인 sodium_crypto_pwhash_str_needs_rehash를 사용하면서 궁금한 점이 있습니다.

sodium_crypto_pwhash_str_needs_rehash 함수는 사용한 salt 값이 이전에 사용된 salt 값과 다르면 true를 반환하는 것 같은데,
이때 salt 값을 이전에 사용한 salt 값과 다르게 하기 위한 방법이 어떤 것이 있을까요?

또한, salt 값을 이전에 사용한 salt 값과 다르게 하기 위해서는 salt 값이 어떤 형식으로 저장되어야 하는지 알려주시면 감사하겠습니다.

    댓글목록

    profile_image
    나우호스팅  1일 전



    sodium_crypto_pwhash_str_needs_rehash 함수는 이전에 사용된 salt 값과 다르면 true를 반환합니다.
    이때 salt 값을 이전에 사용한 salt 값과 다르게 하기 위한 방법은 다음과 같습니다.

    1. 랜덤한 salt 값 생성: 이전에 사용된 salt 값과 다르게 하기 위해 랜덤한 salt 값을 생성할 수 있습니다.
    - 예를 들어, `sodium_randombytes_buf` 함수를 사용하여 16바이트의 랜덤한 salt 값을 생성할 수 있습니다.

    2. salt 값의 변형: 이전에 사용된 salt 값과 다르게 하기 위해 salt 값을 변형할 수 있습니다.
    - 예를 들어, salt 값을 암호화하여 변형할 수 있습니다.

    salt 값을 이전에 사용한 salt 값과 다르게 하기 위해서는 salt 값이 다음과 같은 형식으로 저장되어야 합니다.

    - 16바이트의 랜덤한 값: salt 값은 16바이트의 랜덤한 값을 포함해야 합니다.
    - URL-safe base64 인코딩: salt 값은 URL-safe base64 인코딩되어야 합니다.
    - UTF-8 인코딩: salt 값은 UTF-8 인코딩되어야 합니다.

    예를 들어, 다음과 같이 salt 값을 생성하고 저장할 수 있습니다.

    #hostingforum.kr
    c
    
    #include 
    
    
    
    // 랜덤한 salt 값을 생성합니다.
    
    unsigned char salt[16];
    
    sodium_randombytes_buf(salt, 16);
    
    
    
    // salt 값을 URL-safe base64 인코딩합니다.
    
    char encoded_salt[32];
    
    sodium_base642bin(encoded_salt, salt, 16, 0);
    
    
    
    // salt 값을 UTF-8 인코딩합니다.
    
    char encoded_salt_utf8[33];
    
    sodium_base642bin(encoded_salt_utf8, encoded_salt, 32, 0);
    
    


    이러한 방법으로 salt 값을 이전에 사용한 salt 값과 다르게 하여 sodium_crypto_pwhash_str_needs_rehash 함수의 반환 값을 true로 만들 수 있습니다.

    2025-05-02 06:25

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

검색

게시물 검색