Crypto++学习总结---AES

转载 2015年11月20日 16:01:05

静态库下载连接Cryp++ lib 下载

AES 使用方法 如下:

  1. //For AES encrypt  
  2. #include "default.h"   
  3. #include "cryptlib.h"  
  4. #include "filters.h"  
  5. #include "bench.h"  
  6. #include "osrng.h"  
  7. #include "hex.h"  
  8. #include "modes.h"  
  9. #include "files.h"  
  10.   
  11. using namespace CryptoPP;  
  12. #pragma comment(lib, "cryptopp\\lib\\cryptlib.lib")   
  13.   
  14. using namespace std;  
  15.   
  16. void main() {  
  17.   
  18.     unsigned char key[] = {0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08, 0x01,0x02, 0x03,0x04,0x05,0x06,0x07,0x08};//AES::DEFAULT_KEYLENGTH  
  19.     unsigned char iv[]  = {0x01,0x02,0x03,0x03,0x03,0x03,0x03,0x03, 0x03,0x03, 0x01,0x02,0x03,0x03,0x03,0x03};  
  20.     int keysize = 16;  
  21.   
  22.     string  message = "Hello World!";  
  23.     string  strEncTxt;  
  24.     string  strDecTxt;  
  25.   
  26.     //CBC - PADDING  
  27.     //AES-CBC Encrypt(ONE_AND_ZEROS_PADDING)  
  28.     CBC_Mode<AES>::Encryption  Encryptor1(key,keysize,iv);   
  29.     StringSource(   message,  
  30.         true,  
  31.         new StreamTransformationFilter( Encryptor1,  
  32.         new StringSink( strEncTxt ),  
  33.         BlockPaddingSchemeDef::BlockPaddingScheme::ONE_AND_ZEROS_PADDING,  
  34.         true)  
  35.         );  
  36.   
  37.     //AES-CBC Decrypt  
  38.     CBC_Mode<AES>::Decryption Decryptor1(key,keysize,iv);   
  39.     StringSource(   strEncTxt,   
  40.         true,  
  41.         new StreamTransformationFilter( Decryptor1,  
  42.         new StringSink( strDecTxt ),  
  43.         BlockPaddingSchemeDef::BlockPaddingScheme::ONE_AND_ZEROS_PADDING,  
  44.         true)  
  45.         );  
  46.   
  47.   
  48.     //CTR - NO_PADDING  
  49.     //AES-CTR Encrypt  
  50.     CTR_Mode<AES>::Encryption  Encryptor2(key,keysize,iv);   
  51.     StringSource(   message,   
  52.         true,  
  53.         new StreamTransformationFilter( Encryptor2,  
  54.         new StringSink( strEncTxt ),  
  55.         BlockPaddingSchemeDef::BlockPaddingScheme::NO_PADDING,  
  56.         true)  
  57.         );   
  58.   
  59.     //AES-CTR Decrypt  
  60.     CTR_Mode<AES>::Decryption Decryptor2(key,keysize,iv);   
  61.     StringSource(   strEncTxt,   
  62.         true,  
  63.         new StreamTransformationFilter( Decryptor2,  
  64.         new StringSink( strDecTxt ),  
  65.         BlockPaddingSchemeDef::BlockPaddingScheme::NO_PADDING,  
  66.         true)  
  67.         );    
  68.   
  69. }

相关文章推荐

crypto前台AES加密,后台AES解密

正值这次项目的安全测试,来分享一下在项目中的加密。crypto前台加密CryptoJS (crypto.js) 为 JavaScript 提供了各种各样的加密算法。目前已支持的算法包括: MD5 SH...

Crypto的AES及MD5加密

这几天初步研究了一下加密解密算法, 查了不少的资料, 发现中文网上的资料不是很好, 很多说的云里雾里, 对于初步了解学习密码算法的同志很是头痛,不知道是大家都很懂还是有多保留哦下面把自己完成的测试通过...
  • xbaer
  • xbaer
  • 2011年03月17日 16:05
  • 6341

Crypto++加密解密—— AES(ECB模式)+MAC认证

AES是一种对称密钥加密算法,ECB(Electronic Code Book)是一种加密模式。若对一文本加密,只有算法是不够的,还要选择模式。常用的模式有ECB,CFB,CBC,OFB。除了ECB外...

使用Crypto++实现AES加解密

Crypto++实现AES加密和解密

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Crypto++库在VS 2013中的使用 + 基于操作模式AES加密

Crypto++库在VS2013中的使用 + 基于操作模式AES加密

Crypto++ 入门(2) AES

在我们上一篇文章中,我们介绍了如何安装Crypto++,以及用它完成我们第一个程序。这篇文章主要用来介绍上一篇中的AES程序。 首先让我们来了解一下AES是什么。这部分是准备给对AES不熟的读者看的...

AES加密 C++调用Crypto++加密库 例子

这阵子写了一些数据加密的小程序,对比了好几种算法后,选择了AES,高级加密标准(英语:Advanced Encryption Standard,缩写:AES),听这名字就很厉害的样子 估计会搜索...

AES加密 C++调用Crypto++加密库 例子

写这文章目的不是介绍AES算法,只是想给一个小例子让大家参考一下而已,避免大家在查了大半天加密算法,看了老久AES原理,可就是就不知道怎么使用 (基本加解密过程是stackoverflow的一个小de...

Crypto++学习总结 -MD5-AES-DES-RSA

  • 2017年07月29日 00:16
  • 38.93MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Crypto++学习总结---AES
举报原因:
原因补充:

(最多只允许输入30个字)