zoukankan      html  css  js  c++  java
  • 使用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;
    }



  • 相关阅读:
    Python核心技术与实战——十四|Python中装饰器的使用
    Python核心技术与实战——十三|Python中参数传递机制
    GUI学习之三十四——QSS样式表
    数据分析思维(一):数据分析的三种核心思维
    python设计模式
    Docker架构
    云技术
    5G[generation]的知识收集
    计算机网络知识汇总---20191207
    odoo里面的read_group写法
  • 原文地址:https://www.cnblogs.com/qianyuming/p/2185111.html
Copyright © 2011-2022 走看看