aes加密算法c语言实现
时间: 2023-09-23 11:04:48 浏览: 202
以下是基于 OpenSSL 库的 AES 加密算法 C 语言实现示例:
```c
#include <openssl/aes.h>
#include <string.h>
#define AES_BLOCK_SIZE 16
void aes_encrypt(unsigned char *plaintext, int plaintext_len, unsigned char *key,
unsigned char *iv, unsigned char *ciphertext)
{
AES_KEY aes_key;
AES_set_encrypt_key(key, 128, &aes_key);
AES_cbc_encrypt(plaintext, ciphertext, plaintext_len, &aes_key, iv, AES_ENCRYPT);
}
void aes_decrypt(unsigned char *ciphertext, int ciphertext_len, unsigned char *key,
unsigned char *iv, unsigned char *plaintext)
{
AES_KEY aes_key;
AES_set_decrypt_key(key, 128, &aes_key);
AES_cbc_encrypt(ciphertext, plaintext, ciphertext_len, &aes_key, iv, AES_DECRYPT);
}
```
其中,`aes_encrypt` 函数接受明文、密钥和初始向量,输出密文;`aes_decrypt` 函数接受密文、密钥和初始向量,输出明文。
示例中使用的是 CBC 模式,也可以使用其他模式,如 ECB、CFB、OFB 等,具体可以参考 OpenSSL 库的文档。
阅读全文