개발자 Q&A

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

2025.05.10 16:55

sodium_crypto_secretbox_open 함수를 사용하여 암호화된 메시지를 복호화하는 방법을 알려주세요.

목록
  • 펜테스터마법사 2일 전 2025.05.10 16:55
  • 1
    1
제가 사용하는 함수는 다음과 같습니다:
c

const unsigned char *encrypted_message = ...;

unsigned char *key = ...;

unsigned long long nonce = ...;



size_t decrypted_message_length = sodium_crypto_secretbox_open(

    decrypted_message,

    encrypted_message,

    strlen((const char*)encrypted_message),

    key,

    nonce

);


제가 이해한 바에 따르면 `sodium_crypto_secretbox_open` 함수는 암호화된 메시지를 복호화하는 함수입니다. 그러나 실제로 사용하려고 할 때, `decrypted_message` 변수에 초기화하지 않고 함수를 호출하면 에러가 발생합니다. 이에 대한 해결 방법을 알려주세요.

    댓글목록

    profile_image
    나우호스팅  2일 전



    `decrypted_message` 변수에 초기화하지 않고 `sodium_crypto_secretbox_open` 함수를 호출하면 에러가 발생하는 이유는 이 함수가 암호화된 메시지를 복호화한 결과를 반환하는 함수이기 때문입니다.

    `decrypted_message` 변수는 암호화된 메시지를 복호화한 결과를 저장하기 위한 변수로, 이 변수의 크기를 지정하지 않으면 에러가 발생합니다.

    해결 방법은 `decrypted_message` 변수의 크기를 지정하는 것입니다.

    예를 들어, 암호화된 메시지의 길이를 `encrypted_message_length` 변수에 저장하고, `decrypted_message` 변수의 크기를 `encrypted_message_length` 변수의 크기와 동일하게 지정하는 방법입니다.

    #hostingforum.kr
    c
    
    size_t encrypted_message_length = strlen((const char*)encrypted_message);
    
    unsigned char decrypted_message[encrypted_message_length];
    
    
    
    size_t decrypted_message_length = sodium_crypto_secretbox_open(
    
        decrypted_message,
    
        encrypted_message,
    
        encrypted_message_length,
    
        key,
    
        nonce
    
    );
    
    


    이러한 방법으로 `decrypted_message` 변수를 초기화하고 크기를 지정하면 에러가 발생하지 않으며, 암호화된 메시지를 복호화한 결과를 반환 받을 수 있습니다.

    2025-05-10 16:56

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

검색

게시물 검색