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;
    }



  • 相关阅读:
    设置DataGridView垂直滚动条
    在自定义MessageBox控件里添加键盘回车事件。
    通过访问注册表,表判断系统是否装excel
    让文本框里只能输入数字
    新晋菜鸟的错误
    jdbc连接数据库以及crud(简单易懂,本人亲测可用 有源代码和数据库)
    springboot 错误求解决
    maven 导包报错
    最短路径Dijkstra
    读写者问题
  • 原文地址:https://www.cnblogs.com/qianyuming/p/2185111.html
Copyright © 2011-2022 走看看