
nonce 값은 암호화에 사용되는 고유한 값으로, 각 암호화 요청에 대해 고유한 값이여야 합니다. nonce 값을 설정하는 방법은 다음과 같습니다.
1. nonce 값을 랜덤으로 생성합니다. 예를 들어, `sodium_randombytes_buf` 함수를 사용하여 12바이트의 랜덤 값을 생성할 수 있습니다.
#hostingforum.kr
c
unsigned char nonce[12];
sodium_randombytes_buf(nonce, 12);
2. 생성된 nonce 값을 사용하여 암호화를 진행합니다.
#hostingforum.kr
c
unsigned char payload[1024];
unsigned char ciphertext[1024];
unsigned char tag[16];
sodium_crypto_aead_aegis128l_encrypt(ciphertext, &ciphertext[0] + 16, payload, 1024, nonce, 12, NULL, 0);
payload에 특정한 값을 넣는 방법은 다음과 같습니다.
#hostingforum.kr
c
// payload에 특정한 값을 넣는 방법
unsigned char payload[1024];
payload[0] = 'A';
payload[1] = 'B';
payload[2] = 'C';
// ...
암호화를 진행한 후에, 암호화된 데이터를 검증하는 방법은 다음과 같습니다.
1. 암호화된 데이터를 검증하기 위해, `sodium_crypto_aead_aegis128l_decrypt` 함수를 사용하여 암호화된 데이터를 복호화합니다.
#hostingforum.kr
c
unsigned char plaintext[1024];
unsigned char tag[16];
sodium_crypto_aead_aegis128l_decrypt(plaintext, &plaintext[0] + 16, ciphertext, 1024, nonce, 12, NULL, 0);
2. 복호화된 데이터를 검증하기 위해, `sodium_crypto_aead_aegis128l_verify` 함수를 사용하여 암호화된 데이터의 태그 값을 검증합니다.
#hostingforum.kr
c
unsigned char tag[16];
sodium_crypto_aead_aegis128l_verify(&tag[0], ciphertext, 1024, nonce, 12, NULL, 0);
만약 태그 값이 올바르다면, 복호화된 데이터는 올바른 데이터입니다.
2025-04-20 08:27