개발자 Q&A

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

2025.05.13 14:04

sodium_crypto_secretbox_open 함수에 대한 질문

목록
  • MariaDB장인 1일 전 2025.05.13 14:04
  • 4
    1
저는 sodium_crypto_secretbox_open 함수를 사용하여 암호화된 메시지를 복호화하려고 합니다. 하지만 함수의 두 번째 인자인 mac_key와 nonce를 어떻게 설정해야 하는지 모르겠습니다.

저는 nonce를 랜덤으로 생성한 후, mac_key는 암호화된 메시지와 함께 제공되는 키를 사용하고 싶습니다. 하지만 어떻게 mac_key와 nonce를 함께 사용하여 함수를 호출해야 하는지 모르겠습니다.

다음과 같은 코드를 사용하고 있습니다.

c

char *nonce = malloc(24);

sodium_init();

sodium_randombytes_noncelike(nonce, 24);

unsigned char *key = malloc(32);

unsigned char *message = malloc(1024);

unsigned char *mac = malloc(32);

unsigned char *decrypted_message = malloc(1024);



sodium_crypto_secretbox_open(message, decrypted_message, 1024, nonce, mac, key);



저는 mac_key와 nonce를 어떻게 설정해야 하는지 알려주세요.

    댓글목록

    profile_image
    나우호스팅  1일 전



    sodium_crypto_secretbox_open 함수의 두 번째 인자인 mac_key와 nonce는 다음과 같이 설정해야 합니다.

    mac_key는 암호화된 메시지와 함께 제공되는 키를 사용해야 하며, nonce는 랜덤으로 생성해야 합니다.

    nonce를 랜덤으로 생성하기 위해 sodium_randombytes_noncelike 함수를 사용할 수 있습니다.

    mac_key와 nonce를 함께 사용하여 함수를 호출할 때, nonce를 첫 번째 인자로, mac_key를 세 번째 인자로, 암호화된 메시지를 두 번째 인자로, 복호화된 메시지를 네 번째 인자로, mac_key와 암호화된 메시지의 크기를 다섯 번째 인자와 여섯 번째 인자로 전달해야 합니다.

    다음과 같은 코드를 사용할 수 있습니다.

    #hostingforum.kr
    c
    
    char *nonce = malloc(24);
    
    sodium_init();
    
    sodium_randombytes_noncelike(nonce, 24);
    
    unsigned char *key = malloc(32);
    
    unsigned char *message = malloc(1024);
    
    unsigned char *mac = malloc(32);
    
    unsigned char *decrypted_message = malloc(1024);
    
    
    
    sodium_crypto_secretbox_open(nonce, message, 1024, mac, key);
    
    


    이 코드에서 nonce는 첫 번째 인자로, mac_key는 세 번째 인자로, 암호화된 메시지는 두 번째 인자로, 복호화된 메시지는 네 번째 인자로, mac_key와 암호화된 메시지의 크기는 다섯 번째 인자와 여섯 번째 인자로 전달됩니다.

    이러한 설정을 통해 sodium_crypto_secretbox_open 함수를 사용하여 암호화된 메시지를 복호화할 수 있습니다.

    2025-05-13 14:05

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

검색

게시물 검색