aes 128的加解密算法c++
时间: 2023-07-27 20:07:02 浏览: 97
AES加解密算法(C++实现)
以下是使用 OpenSSL 库实现 AES 128 加解密算法的 C++ 代码示例:
```cpp
#include <openssl/aes.h>
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
// 分配密钥和明文空间
unsigned char key[] = "0123456789abcdef";
unsigned char text[] = "hello world!";
// 初始化加密上下文
AES_KEY aes_key;
AES_set_encrypt_key(key, 128, &aes_key);
// 加密明文
unsigned char encrypted[128];
AES_encrypt(text, encrypted, &aes_key);
// 输出加密结果
cout << "encrypted: ";
for (int i = 0; i < strlen((char *)encrypted); i++)
printf("%02x", encrypted[i]);
cout << endl;
// 初始化解密上下文
AES_set_decrypt_key(key, 128, &aes_key);
// 解密密文
unsigned char decrypted[128];
AES_decrypt(encrypted, decrypted, &aes_key);
// 输出解密结果
cout << "decrypted: " << decrypted << endl;
return 0;
}
```
在该示例中,我们使用了 OpenSSL 库中的 `AES_set_encrypt_key`、`AES_encrypt`、`AES_set_decrypt_key` 和 `AES_decrypt` 函数分别进行 AES 128 加密和解密操作。其中,`key` 和 `text` 分别表示密钥和明文,`encrypted` 和 `decrypted` 分别表示加密后的密文和解密后的明文。在输出加密结果时,我们使用了 `printf` 函数格式化输出每个字节的十六进制表示。
阅读全文