关闭

Crypto++学习总结---AES

354人阅读 评论(0) 收藏 举报
分类:

静态库下载连接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. }
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:213432次
    • 积分:2970
    • 等级:
    • 排名:第11823名
    • 原创:5篇
    • 转载:500篇
    • 译文:0篇
    • 评论:8条
    最新评论