aes加密算法的c++实现
时间: 2023-07-26 13:17:55 浏览: 57
以下是使用 OpenSSL 库实现 AES 加密算法的 C++ 代码示例:
```c++
#include <openssl/aes.h>
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
AES_KEY key;
const unsigned char aes_key[] = "0123456789abcdef";
const unsigned char iv[] = "0123456789abcdef";
unsigned char in[] = "Hello, world!";
unsigned char out[AES_BLOCK_SIZE];
unsigned char out2[AES_BLOCK_SIZE];
int len = strlen((const char *)in);
// 加密
AES_set_encrypt_key(aes_key, 128, &key);
AES_cbc_encrypt(in, out, len, &key, iv, AES_ENCRYPT);
cout << "Encrypted: ";
for (int i = 0; i < len; i++)
cout << hex << (int)out[i];
cout << endl;
// 解密
AES_set_decrypt_key(aes_key, 128, &key);
AES_cbc_encrypt(out, out2, len, &key, iv, AES_DECRYPT);
cout << "Decrypted: " << out2 << endl;
return 0;
}
```
这段代码使用了 CBC 模式进行加密和解密。其中,`aes_key` 数组表示密钥,`iv` 数组表示初始化向量,`in` 数组表示待加密的数据,`out` 数组表示加密后的数据,`out2` 数组表示解密后的数据。在这个示例中,我们对字符串 "Hello, world!" 进行加密和解密。