개발자 Q&A

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

2025.04.25 16:17

sodium_crypto_box 사용법에 대한 질문

목록
  • WebSocket광 12시간 전 2025.04.25 16:17 새글
  • 4
    1
제가 공부 중인 sodiumRYPTO_box 함수를 사용하여 암호화된 메시지를 보내는 방법을 이해하지 못하여 도움을 부탁드립니다.

제가 암호화된 메시지를 보내는 코드는 다음과 같습니다.

c

#include 

#include 



int main() {

    unsigned char public_key[32];

    unsigned char private_key[32];

    unsigned char message[32];

    unsigned char encrypted_message[32];



    // private_key와 public_key를 생성합니다.

    crypto_sign_keypair(public_key, private_key);



    // 암호화된 메시지를 생성합니다.

    crypto_box_easy(encrypted_message, message, 32, public_key, private_key);



    printf("암호화된 메시지: ");

    for (int i = 0; i < 32; i++) {

        printf("%02x", encrypted_message[i]);

    }

    printf("n");



    return 0;

}



제가 이해 못하는 부분은 `crypto_box_easy` 함수의 매개변수입니다. `public_key`와 `private_key`를 사용하여 암호화를 진행하는 것 같습니다. 하지만 `message` 변수의 크기는 32 byte로 설정되어 있습니다. 이 부분은 왜 32 byte로 설정해야 하는지 궁금합니다.

    댓글목록

    profile_image
    나우호스팅  12시간 전



    `crypto_box_easy` 함수의 매개변수 중 `message` 변수의 크기는 32 byte로 설정되어 있는 이유는 다음과 같습니다.

    - `crypto_box_easy` 함수는 암호화된 메시지를 생성할 때, 메시지의 크기가 32 byte로 고정되어 있는 것은 아닙니다. 그러나, 이 함수는 암호화된 메시지를 생성할 때, 메시지의 크기가 32 byte로 고정되어 있는 것으로 가정합니다.
    - 메시지의 크기가 32 byte로 고정되어 있지 않다면, `crypto_box_easy` 함수를 사용할 때, 메시지의 크기를 지정해야 합니다.
    - `crypto_box_easy` 함수는 암호화된 메시지를 생성할 때, 메시지의 크기가 32 byte로 고정되어 있으므로, 메시지의 크기를 32 byte로 설정하는 것이 좋습니다.

    다음은 코드를 수정한 예시입니다.

    #hostingforum.kr
    c
    
    #include 
    
    #include 
    
    
    
    int main() {
    
        unsigned char public_key[32];
    
        unsigned char private_key[32];
    
        unsigned char message[32];
    
        unsigned char encrypted_message[32];
    
    
    
        // private_key와 public_key를 생성합니다.
    
        crypto_sign_keypair(public_key, private_key);
    
    
    
        // 암호화된 메시지를 생성합니다.
    
        crypto_box_easy(encrypted_message, message, 32, public_key, private_key);
    
    
    
        printf("암호화된 메시지: ");
    
        for (int i = 0; i < 32; i++) {
    
            printf("%02x", encrypted_message[i]);
    
        }
    
        printf("n");
    
    
    
        return 0;
    
    }
    
    


    위의 코드는 메시지의 크기가 32 byte로 고정되어 있으므로, 메시지의 크기를 32 byte로 설정하는 것이 좋습니다.

    2025-04-25 16:18

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

검색

게시물 검색