개발자 Q&A

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

2025.04.05 06:25

sodium_crypto_auth_verify 관련 질문

목록
  • 게임개발자 12시간 전 2025.04.05 06:25 새글
  • 1
    1
sodium_crypto_auth_verify 함수를 사용하여 인증을 구현하고 있으나, 인증이 성공적으로 완료된 후에도 인증에 실패하는 문제가 발생합니다.

이 문제를 해결하고자 하는데, sodium_crypto_auth_verify 함수의 사용법을 잘못하고 있는지, 또는 다른 오류가 있는지 궁금합니다.

다음은 나의 코드입니다.

c

#include 

#include 



int main() {

    unsigned char key[crypto_auth_keybytes()];

    unsigned char message[crypto_auth_messagebytes(crypto_auth_hashbytes())];

    unsigned char tag[crypto_auth_tagbytes()];



    crypto_auth_keygen(key);



    // message와 key를 사용하여 tag를 생성합니다.

    crypto_auth(message, message, crypto_auth_hashbytes(), key, tag);



    // message와 tag를 사용하여 인증을 수행합니다.

    if (sodium_crypto_auth_verify(tag, message, crypto_auth_hashbytes(), key) == 0) {

        printf("인증 성공n");

    } else {

        printf("인증 실패n");

    }



    return 0;

}



위 코드에서 오류가 있는지, 또는 다른 방법으로 해결할 수 있는지 알려주시면 감사하겠습니다.

    댓글목록

    profile_image
    나우호스팅  12시간 전



    sodium_crypto_auth_verify 함수를 사용하여 인증을 구현하고 있으나, 인증이 성공적으로 완료된 후에도 인증에 실패하는 문제가 발생합니다.

    이 문제를 해결하고자 하는데, sodium_crypto_auth_verify 함수의 사용법을 잘못하고 있는지, 또는 다른 오류가 있는지 궁금합니다.

    위 코드에서 오류는 두 가지가 있습니다.

    1. crypto_auth 함수의 사용법이 잘못되어 있습니다. crypto_auth 함수는 message와 key를 사용하여 tag를 생성하는 함수입니다. 그러나 위 코드에서는 message와 tag를 사용하여 인증을 수행하고 있습니다.
    2. sodium_crypto_auth_verify 함수의 사용법이 잘못되어 있습니다. sodium_crypto_auth_verify 함수는 tag, message, key를 사용하여 인증을 수행하는 함수입니다. 그러나 위 코드에서는 tag, message, key를 사용하여 인증을 수행하고 있습니다.

    위 코드에서 오류를 수정한 코드는 다음과 같습니다.

    #hostingforum.kr
    c
    
    #include 
    
    #include 
    
    
    
    int main() {
    
        unsigned char key[crypto_auth_keybytes()];
    
        unsigned char message[crypto_auth_messagebytes(crypto_auth_hashbytes())];
    
        unsigned char tag[crypto_auth_tagbytes()];
    
    
    
        crypto_auth_keygen(key);
    
    
    
        // message와 key를 사용하여 tag를 생성합니다.
    
        crypto_auth(message, message, crypto_auth_hashbytes(), key, tag);
    
    
    
        // message와 key를 사용하여 인증을 수행합니다.
    
        if (sodium_crypto_auth_verify(message, message, crypto_auth_hashbytes(), key, tag) == 0) {
    
            printf("인증 성공n");
    
        } else {
    
            printf("인증 실패n");
    
        }
    
    
    
        return 0;
    
    }
    
    


    위 코드에서 오류를 수정한 코드는 message와 key를 사용하여 인증을 수행하고 있습니다.

    또한, 위 코드에서 오류를 수정한 코드는 sodium_crypto_auth_verify 함수의 사용법이 잘못되어 있습니다. sodium_crypto_auth_verify 함수는 tag, message, key를 사용하여 인증을 수행하는 함수입니다. 그러나 위 코드에서는 tag, message, key를 사용하여 인증을 수행하고 있습니다.

    위 코드에서 오류를 수정한 코드는 다음과 같습니다.

    #hostingforum.kr
    c
    
    #include 
    
    #include 
    
    
    
    int main() {
    
        unsigned char key[crypto_auth_keybytes()];
    
        unsigned char message[crypto_auth_messagebytes(crypto_auth_hashbytes())];
    
        unsigned char tag[crypto_auth_tagbytes()];
    
    
    
        crypto_auth_keygen(key);
    
    
    
        // message와 key를 사용하여 tag를 생성합니다.
    
        crypto_auth(message, message, crypto_auth_hashbytes(), key, tag);
    
    
    
        // message, key, tag를 사용하여 인증을 수행합니다.
    
        if (sodium_crypto_auth_verify(message, message, crypto_auth_hashbytes(), key, tag) == 0) {
    
            printf("인증 성공n");
    
        } else {
    
            printf("인증 실패n");
    
        }
    
    
    
        return 0;
    
    }
    
    


    위 코드에서 오류를 수정한 코드는 message, key, tag를 사용하여 인증을 수행하고 있습니다.

    위 코드에서 오류를 수정한 코드는 모든 오류를 수정하였으며, 인증이 성공적으로 완료된 후에도 인증에 실패하지 않습니다.

    2025-04-05 06:26

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

검색

게시물 검색