1     int main(const std::vector<std::string>& args)
2 {
3 /*TO DO*/
4 Cipher::Ptr pCipher = CipherFactory::defaultFactory().createCipher(CipherKey("aes256"));
5
6 std::string in("I love karen!");
7 std::string out = pCipher->encryptString(in, Cipher::ENC_BASE64);
8 std::string result = pCipher->decryptString(out, Cipher::ENC_BASE64);
9 std::cout<<"加密后:"<<out<<std::endl;
10 std::cout<<"解密后:"<<result<<std::endl;
11
12 return Application::EXIT_OK;
13 }

1、第4行代码,创建一个256位的AES加密算法;

注:http://zh.wikipedia.org/wiki/%E9%AB%98%E7%BA%A7%E5%8A%A0%E5%AF%86%E6%A0%87%E5%87%86  AES维基百科

2、第7、8行代码,分别实现加密与解密过程。

3、在加密与解密过程中,代码中使用了BASE64编码方式,另外在POCO::Crypto中还有以下编码方式:

enum Encoding
/// Transport encoding to use for encryptString() and decryptString().
{
ENC_NONE = 0x00, /// Plain binary output
ENC_BASE64 = 0x01, /// Base64-encoded output
ENC_BINHEX = 0x02, /// BinHex-encoded output
ENC_BASE64_NO_LF = 0x81, /// Base64-encoded output, no linefeeds
ENC_BINHEX_NO_LF = 0x82, /// BinHex-encoded output, no linefeeds
};

 1     int main(const std::vector<std::string>& args)
2 {
3 /*TO DO*/
4 Cipher::Ptr pCipher = CipherFactory::defaultFactory().createCipher(CipherKey("aes256"));
5
6 static const std::string SECRET_MESSAGE = "This is a secret message. Don't tell anyone.";
7
8 std::stringstream sstr;
9 EncryptingOutputStream encryptor(sstr, *pCipher);
10 encryptor << SECRET_MESSAGE;
11 encryptor.close();
12
13 DecryptingInputStream decryptor(sstr, *pCipher);
14 std::string iresult;
15 Poco::StreamCopier::copyToString(decryptor, iresult);
16
17 std::cout<<"解密后:"<<iresult<<std::endl;
18 return Application::EXIT_OK;
19 }

1、第6行,为原文;

2、第9行,加密;第13行,解密;

3、第15行,得到解密结果,就是原文了。

 
标签: Crypto加解密

Poco::Crypto--加解密(AES)的更多相关文章

  1. Java 加解密 AES DES TripleDes

    package xxx.common.util; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.crypt ...

  2. Go语言加解密--AES简单实践

    AES加解密的简单实现,代码如下. package main import ( "crypto/aes" "crypto/cipher" "encod ...

  3. Delphi与JAVA互加解密AES算法

    搞了半天终于把这个对应的参数搞上了,话不多说,先干上代码: package com.bss.util; import java.io.UnsupportedEncodingException; imp ...

  4. Python3 AES加解密(AES/ECB/PKCS5Padding)

    class AesEncry(object): key = "wwwwwwwwwwwwwwww" # aes秘钥 def encrypt(self, data): data = j ...

  5. iOS,信息加解密

    1.AES加解密 AES加解密 // //  AESEncryptAndDecrypt.h //  NSData扩展方法,用于处理aes加解密 // //  Created by Vie on 16/ ...

  6. Crypto++入门学习笔记(DES、AES、RSA、SHA-256)(加解密)

    转自http://www.cppblog.com/ArthasLee/archive/2010/12/01/135186.html 最近,基于某些原因和需要,笔者需要去了解一下Crypto++库,然后 ...

  7. C#调用Crypto++库AES ECB CBC加解密

    本文章使用上一篇<C#调用C++类库例子>的项目代码作为Demo.本文中,C#将调用C++的Crypto++库,实现AES的ECB和CBC加解密. 一.下载Crypto 1.进入Crypt ...

  8. Java、C#双语版配套AES加解密示例

      这年头找个正经能用的东西那是真难,网上一搜索一大堆,正经能用的没几个,得,最后还是得靠自己,正巧遇上需要AES加解密的地方了,而且还是Java和C#间的相互加解密操作,这里做个备忘 这里采用的加解 ...

  9. C++的AES加解密

    最近公司项目要做个WPF程序,但是底层加密部分要用C++来实现.通过网上搜索各种资料,地址已经记不下了,没发贴出来了! 下面看看如何加解密的~!先贴代码.... string tKey(sKey); ...

随机推荐

  1. 使用 JS 实现图片左右跑马灯

    Ø  前言 之前写了一篇使用 JS 实现文字上下跑马灯,现在乘热打铁在把图片左右跑马灯一起贴出来,不多说直接看代码. 1.   首先定义 css 样式 <style type="tex ...

  2. 【LeetCode】89.Gary Code

    Problem: The gray code is a binary numeral system where two successive values differ in only one bit ...

  3. mysql数值运算符和函数

    mysql> |+------------+1 row in set (0.00 sec) mysql> SELECT FLOOR(3.99);  # 舍1取整+------------- ...

  4. 目前比较火的前端框架及UI组件

    看到的一篇总结性的文章,收藏一下,感兴趣的可以自己看看,哪些是已经会的,哪些是没听说过的,哪些是一知半解的,都可以稍微看看. 一.前端框架库: 1.Zepto.js 地址:点击打开链接 描述:Zept ...

  5. js中 onreadystatechange 和 onload的区别

    IE的script 元素只支持onreadystatechange事件,不支持onload事件. FF的script 元素不支持onreadystatechange事件,只支持onload事件. 如果 ...

  6. mongodb系列~配置文件的优化与处理

    一 简介:讲讲如何优化mongo配置文件二 常规参数     port= //端口     fork=true//守护进程方式启动mongo     logpath=shard.log //mongo ...

  7. ASP.NET - ADO.NET框架

    ADO.NET(ActiveX Data Objects) ADO.NET是一个COM组件库,用于在使用Microsoft技术的代码中访问数据库. SQL数据操作类 SqlConnection类(Sy ...

  8. 配置中文分词器 IK-Analyzer-Solr7

    先下载solr7版本的ik分词器,下载地址:http://search.maven.org/#search%7Cga%7C1%7Ccom.github.magese分词器GitHub源码地址:http ...

  9. vue组件监听不生效,比深度监听还管用哦

    在Watch监听数组里面里加上 immediate: true, watch:{ myArrList:{ immediate: true, handler(curVal,oldVal){ consol ...

  10. 【转】python之random模块分析(一)

    [转]python之random模块分析(一) random是python产生伪随机数的模块,随机种子默认为系统时钟.下面分析模块中的方法: 1.random.randint(start,stop): ...