1.源码实现
#include <iostream>
#include <string>
#include <botan/botan.h>
using namespace std;
using namespace Botan;
/*加解密*/
string cryptoAES128(string input, string passphrase, Cipher_Dir opt)
{
HashFunction *hash = get_hash("MD5");
SymmetricKey key = hash->process(passphrase);
SecureVector<byte> raw_iv = hash->process('0' + passphrase);
InitializationVector iv(raw_iv);
Pipe pipe(get_cipher("AES-128/CBC", key, iv, opt));
pipe.process_msg(input);
string output = pipe.read_all_as_string();
return output;
}
int main()
{
string input = "你好, 世界!";
string key = "123456";
string output;
string plain;
/*测试AES-128加密*/
output = cryptoAES128(input, key, ENCRYPTION);
cout << "密文大小: " << output.size() << endl;
/*测试AES-128解密*/
plain = cryptoAES128(output, key, DECRYPTION);
cout << "明文内容: " << plain << endl;
return 0;
}
2.编译源码
$ g++ -o test test.cpp -std=c++11 -I/usr/local/include/botan-2 -Wno-cpp -Wno-deprecated-declarations -lbotan-2
3.运行及其结果
$ ./test
密文大小: 16
明文内容: 你好, 世界!
网友评论