AES加密解密C语言实现
时间: 2024-01-02 08:03:20 浏览: 26
以下是AES加密解密的C语言实现:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <openssl/aes.h>
// AES加密函数
int aes_encrypt(const unsigned char *in, unsigned char *out, const AES_KEY *key)
{
AES_set_encrypt_key(key->key, 128, key);
AES_encrypt(in, out, key);
return 0;
}
// AES解密函数
int aes_decrypt(const unsigned char *in, unsigned char *out, const AES_KEY *key)
{
AES_set_decrypt_key(key->key, 128, key);
AES_decrypt(in, out, key);
return 0;
}
int main()
{
AES_KEY key;
unsigned char *input_str = "Hello World!"; // 待加密的字符串
unsigned char *encrypt_str = (unsigned char *)malloc(strlen(input_str) + 1); // 存储加密后的字符串
unsigned char *decrypt_str = (unsigned char *)malloc(strlen(input_str) + 1); // 存储解密后的字符串
// 设置密钥
unsigned char *key_str = "1234567890123456";
AES_set_encrypt_key(key_str, 128, &key);
// 加密
aes_encrypt(input_str, encrypt_str, &key);
printf("加密后的字符串:%s\n", encrypt_str);
// 解密
aes_decrypt(encrypt_str, decrypt_str, &key);
printf("解密后的字符串:%s\n", decrypt_str);
free(encrypt_str);
free(decrypt_str);
return 0;
}
```