色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

c aes加密json字符串

李中冰2年前7瀏覽0評論

AES加密是一種常用的加密方法,其中C語言是實現AES加密的一種有力工具。我們可以利用C語言的AES加密來對JSON字符串進行加密。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <openssl/aes.h>
int main()
{
unsigned char key[] = "0123456789abcdef";  // AES 128-bit key
unsigned char iv[] = "abcdef0123456789";   // AES 128-bit IV
unsigned char plaintext[] = "{\"msg\":\"Hello, world!\"}"; // 待加密的JSON字符串
int plaintext_len = strlen((char *)plaintext);
// 根據key和IV創建AES結構體
AES_KEY aes_key;
if (AES_set_encrypt_key(key, 128, &aes_key)< 0)
{
printf("AES_set_encrypt_key error!\n");
exit(1);
}
// 設置加密模式和填充模式
int encrypt_mode = AES_MODE_CBC;//CBC加密模式
unsigned char *ciphertext = (unsigned char *)malloc(plaintext_len + AES_BLOCK_SIZE); // 分配密文緩存
memset(ciphertext, 0, plaintext_len + AES_BLOCK_SIZE);//分配緩存,里面填充0
//加密 
AES_cbc_encrypt(plaintext, ciphertext, plaintext_len, &aes_key, iv, encrypt_mode);
//輸出加密后的JSON密文
printf("ciphertext: %s\n", ciphertext);
free(ciphertext);
return 0;
}

在上面的代碼中,我們首先定義了AES加密所需的key和IV,然后創建了一個待加密的JSON字符串。接著,我們使用strlen函數計算出JSON字符串的長度,以便后面分配密文緩存所需的內存空間。然后,根據key和IV,我們創建了一個AES結構體。

在AES_set_encrypt_key函數中,我們指定了128位的AES密鑰和加密模式CBC,這個函數將會用指定的key和IV填充aes_key結構體中的相關參數,以便使用后面的AES_cbc_encrypt函數進行加密。

在AES_cbc_encrypt函數中,我們使用指定的key和IV對JSON字符串進行加密,并將結果存儲在ciphertext緩存中。最后,我們打印出加密后的JSON密文,并釋放分配的緩存。