개발자 Q&A

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

2025.04.05 09:55

Sodium 라이브러리에서 PWHASH 함수 사용에 대한 질문

목록
  • 비동기전문가 1일 전 2025.04.05 09:55
  • 1
    1
제가 현재 Sodium 라이브러리에서 PWHASH 함수를 사용하여 비밀번호를 해시화 하는데, str 함수를 사용하여 문자열로 변환하는 방법에 대해 궁금합니다.

제가 현재 사용하는 코드는 다음과 같습니다.

c

#include 



int main() {

    unsigned char password[32];

    unsigned char salt[16];

    unsigned char hash[32];



    // 비밀번호 및 솔트 생성

    sodium_pwhash_str(password, 32, "mysecretpassword", 16, salt, 16);



    // 해시 생성

    sodium_pwhash_scryptsalsa208sha256_str(hash, 32, password, 32, salt, 16, 4096, 8, 1);



    // 해시 문자열로 변환

    char* hashed_password = sodium_pwhash_str_to_str(hash, 32);



    printf("%sn", hashed_password);



    return 0;

}



str 함수를 사용하여 문자열로 변환하는 부분에 대해 질문을 드리겠습니다.

1. str 함수는 어떤 역할을 하는가요?
2. str 함수를 사용하여 문자열로 변환하는 방법은 어떤가요?
3. str 함수를 사용하여 문자열로 변환한 후, 다시 byte array로 변환하는 방법은 어떤가요?

제가 이해하기 어려운 부분이 있으니, 자세한 설명 부탁드립니다.

    댓글목록

    profile_image
    나우호스팅  1일 전



    1. str 함수는 Sodium 라이브러리의 함수 중 하나로, 비밀번호 해시를 문자열로 변환하는 역할을 합니다. 이 함수는 비밀번호 해시를 64자 길이의 알파벳 대문자와 소문자, 숫자, 특수문자로 구성된 문자열로 변환합니다.

    2. str 함수를 사용하여 문자열로 변환하는 방법은 다음과 같습니다.

    - `char* hashed_password = sodium_pwhash_str_to_str(hash, 32);` 라고 작성합니다.
    - 이 함수는 `hash` 변수에 저장된 비밀번호 해시를 문자열로 변환합니다.

    3. str 함수를 사용하여 문자열로 변환한 후, 다시 byte array로 변환하는 방법은 다음과 같습니다.

    - `char* hashed_password = sodium_pwhash_str_to_str(hash, 32);` 라고 작성합니다.
    - `unsigned char* hashed_password_bytes = sodium_base642bin(hashed_password, strlen(hashed_password));` 라고 작성합니다.
    - 이 함수는 `hashed_password` 변수에 저장된 문자열을 byte array로 변환합니다.

    예를 들어, 다음과 같이 작성할 수 있습니다.

    #hostingforum.kr
    c
    
    #include 
    
    
    
    int main() {
    
        unsigned char password[32];
    
        unsigned char salt[16];
    
        unsigned char hash[32];
    
    
    
        // 비밀번호 및 솔트 생성
    
        sodium_pwhash_str(password, 32, "mysecretpassword", 16, salt, 16);
    
    
    
        // 해시 생성
    
        sodium_pwhash_scryptsalsa208sha256_str(hash, 32, password, 32, salt, 16, 4096, 8, 1);
    
    
    
        // 해시 문자열로 변환
    
        char* hashed_password = sodium_pwhash_str_to_str(hash, 32);
    
    
    
        // 문자열을 byte array로 변환
    
        unsigned char* hashed_password_bytes = sodium_base642bin(hashed_password, strlen(hashed_password));
    
    
    
        printf("%sn", hashed_password);
    
        printf("%sn", hashed_password_bytes);
    
    
    
        return 0;
    
    }
    
    


    이 예제에서는 `sodium_pwhash_str_to_str` 함수를 사용하여 비밀번호 해시를 문자열로 변환하고, `sodium_base642bin` 함수를 사용하여 문자열을 byte array로 변환합니다.

    2025-04-05 09:56

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

검색

게시물 검색