使用botan库进行AES128加密

botan加密算法库集成了常见的加密及哈希算法,哈希类(hash)如MD5,SHA-1,SHA-256,都是有的,对称加密算法如DES,AES,非对称加密算法如RSA都有支持

botan软件主页:http://botan.randombit.net/

那么就单刀直入吧!

安装:ubuntu下安装botan库很简单,到软件中心里搜libbotan,把一个libbotan和另外一个诸如libbotanxxx-dev的库安装就可以了,其它系统请参阅软件文档。

使用:botan库使用之前,要求必须有一个LibraryInitializer对象,这个可以在你的main函数开头写入(事实上我之前曾经忘记了写这个东西,似乎没有出问题)

使用botan第三方库,那么方法很简单

#include <botan/botan.h>

botan库内所有的类、接口大多是声明在一个叫做Botan的名字空间里,你可以用普通引用的方法,如果要图懒可以直接using namespace Botan;

下面的代码展示如何使用Botan库中的算法进行AES128/CBC对称加密,AES128所需的128位密钥通过MD5获得

说明:

输入依次为 明文(或密文)、密码、操作(有ENCRYPTION和DECRYPTION两种)

输出:明文(或密文),对于解密操作,解密成功时返回明文,解密失败,抛出一个Botan::Decoding_Error类型的异常

string cryptoAES(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, 16);
Pipe pipe(get_cipher("AES-128/CBC", key, iv, opt));
pipe.process_msg(input);
string output=pipe.read_all_as_string();
return output;
}



转载于:https://my.oschina.net/qianyuming/blog/701094

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值