AES加解密C语言代码
时间: 2023-11-12 17:06:29 浏览: 86
以下是AES加解密的C语言代码,使用的是OpenSSL库。
加密代码:
```c
#include <openssl/aes.h>
void encrypt(unsigned char *input, unsigned char *output, unsigned char *key, int length) {
AES_KEY aes_key;
AES_set_encrypt_key(key, 128, &aes_key); // 设置加密密钥
int num_blocks = length / AES_BLOCK_SIZE;
for (int i = 0; i < num_blocks; i++) {
AES_encrypt(input + i * AES_BLOCK_SIZE, output + i * AES_BLOCK_SIZE, &aes_key); // 加密每个块
}
}
```
解密代码:
```c
#include <openssl/aes.h>
void decrypt(unsigned char *input, unsigned char *output, unsigned char *key, int length) {
AES_KEY aes_key;
AES_set_decrypt_key(key, 128, &aes_key); // 设置解密密钥
int num_blocks = length / AES_BLOCK_SIZE;
for (int i = 0; i < num_blocks; i++) {
AES_decrypt(input + i * AES_BLOCK_SIZE, output + i * AES_BLOCK_SIZE, &aes_key); // 解密每个块
}
}
```
其中,`input`和`output`分别是输入和输出的数据,`key`是加解密密钥,`length`是数据长度。需要注意的是,输入数据的长度必须是AES_BLOCK_SIZE的倍数。
阅读全文