• 大小: 0.3M
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-12
  • 语言: 其他
  • 标签: 其他  

资源简介

AES_allmode.rar

资源截图

代码片段和文件信息

// aestest2.cpp : 定义控制台应用程序的入口点。
//

#include “stdafx.h“
#include 
#include       // StreamTransformationFilter
#include     // CFB_Mode
#include     // std:cerr  
#include     // std::stringstream  
#include 

using namespace std;
using namespace CryptoPP;
#pragma comment( lib “cryptlib.lib“ )



std::string ECB_AESEncryptStr(std::string sKey const char *plainText)
{
    std::string outstr;
      
    //填key  
    SecByteBlock key(AES::MAX_KEYLENGTH);  
    memset(key0x30key.size() );  
    sKey.size()<=AES::MAX_KEYLENGTH?memcpy(keysKey.c_str()sKey.size()):memcpy(keysKey.c_str()AES::MAX_KEYLENGTH);  
          
      
    AES::Encryption aesEncryption((byte *)key AES::MAX_KEYLENGTH);  
      
    ECB_Mode_ExternalCipher::Encryption ecbEncryption(aesEncryption);
    StreamTransformationFilter ecbEncryptor(ecbEncryption new HexEncoder(new StringSink(outstr)));  
    ecbEncryptor.Put((byte *)plainText strlen(plainText));  
    ecbEncryptor.MessageEnd();  
      
    return outstr;  
}  


std::string ECB_AESDecryptStr(std::string sKey const char *cipherText)  
{  
    std::string outstr;  
      
    //填key  
    SecByteBlock key(AES::MAX_KEYLENGTH);  
    memset(key0x30key.size() );  
    sKey.size()<=AES::MAX_KEYLENGTH?memcpy(keysKey.c_str()sKey.size()):memcpy(keysKey.c_str()AES::MAX_KEYLENGTH);  
          
    ECB_Mode::Decryption ecbDecryption((byte *)key AES::MAX_KEYLENGTH);  
          
    HexDecoder decryptor(new StreamTransformationFilter(ecbDecryption new StringSink(outstr)));  
    decryptor.Put((byte *)cipherText strlen(cipherText));  
    decryptor.MessageEnd();  
      
    return outstr;  
}  


std::string CBC_AESEncryptStr(std::string sKey std::string sIV const char *plainText)
{
    std::string outstr;
      
    //填key  
    SecByteBlock key(AES::MAX_KEYLENGTH);  
    memset(key0x30key.size() );  
    sKey.size()<=AES::MAX_KEYLENGTH?memcpy(keysKey.c_str()sKey.size()):memcpy(keysKey.c_str()AES::MAX_KEYLENGTH);  
          
    //填iv  
    byte iv[AES::BLOCKSIZE];  
    memset(iv0x30AES::BLOCKSIZE); 
sIV.size()<=AES::BLOCKSIZE?memcpy(ivsIV.c_str()sIV.size()):memcpy(ivsIV.c_str()AES::BLOCKSIZE);
      
    AES::Encryption aesEncryption((byte *)key AES::MAX_KEYLENGTH);  
      
    CBC_Mode_ExternalCipher::Encryption cbcEncryption(aesEncryption iv);  
      
    StreamTransformationFilter cbcEncryptor(cbcEncryption new HexEncoder(new StringSink(outstr)));  
    cbcEncryptor.Put((byte *)plainText strlen(plainText));  
    cbcEncryptor.MessageEnd();  
      
    return outstr;  
}  


std::string CBC_AESDecryptStr(std::string sKey std::string sIV const char *cipherText)  
{  
    std::string outstr;  
      
    //填key  
    SecByteBlock key(AES::MAX_KEYLENGTH);  
    memset(key0x30key.size() );  
    sKey.size()<=AES::MAX_KEY

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      14106  2013-03-31 20:25  aestest2\aestest2\aestest2.cpp

     文件       4638  2013-03-29 21:57  aestest2\aestest2\aestest2.vcxproj

     文件       1312  2013-03-29 21:49  aestest2\aestest2\aestest2.vcxproj.filters

     文件        143  2013-03-29 21:49  aestest2\aestest2\aestest2.vcxproj.user

     文件       1560  2013-03-29 21:49  aestest2\aestest2\ReadMe.txt

     文件        213  2013-03-29 21:49  aestest2\aestest2\stdafx.cpp

     文件        233  2013-03-29 21:49  aestest2\aestest2\stdafx.h

     文件        236  2013-03-29 21:49  aestest2\aestest2\targetver.h

     文件        891  2013-03-29 21:49  aestest2\aestest2.sln

    ..A..H.     11776  2013-03-31 20:25  aestest2\aestest2.suo

     文件    1807360  2013-03-31 20:25  aestest2\Debug\aestest2.exe

     目录          0  2013-03-31 20:26  aestest2\aestest2

     目录          0  2013-03-31 20:26  aestest2\Debug

     目录          0  2013-03-31 20:26  aestest2

----------- ---------  ---------- -----  ----

              1842468                    14


评论

共有 条评论