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

#include <stdio.h>
#include <tchar.h>
#include <iostream>

#include "aes.h"

using namespace std;
using namespace CryptoPP; int main()
{
cout << "aes demo "<< AES::StaticAlgorithmName() << endl;
unsigned char aesKey[AES::DEFAULT_KEYLENGTH] = "aes"; //密钥 AESEncryption aesEncryptor; //加密器
aesEncryptor.SetKey(aesKey, AES::DEFAULT_KEYLENGTH); //设定加密密钥 char* srcData = "123456789abcdefghi987654321"; cout << "will be encode:" << srcData << endl; unsigned char xorBlock[AES::BLOCKSIZE]; //必须设定为全零
memset(xorBlock, , AES::BLOCKSIZE); //置零
unsigned char inBlock[AES::BLOCKSIZE]; //要加密的数据块
unsigned char outBlock[AES::BLOCKSIZE]; //加密后的密文块 AESDecryption aesDecryptor;
aesDecryptor.SetKey(aesKey, AES::DEFAULT_KEYLENGTH);
unsigned char plainText[AES::BLOCKSIZE]; int srclen = strlen(srcData);
char* dstData = (char*)calloc(srclen, sizeof(char));
int pos = ;
do
{
int relaysize = srclen - pos;
int cpsize = relaysize > AES::BLOCKSIZE ? AES::BLOCKSIZE : relaysize;
memset(inBlock, , AES::BLOCKSIZE);
memset(outBlock, , AES::BLOCKSIZE);
memset(plainText, , AES::BLOCKSIZE);
memcpy(inBlock, srcData + pos, cpsize);
aesEncryptor.ProcessAndXorBlock(inBlock, xorBlock, outBlock); //加密
aesDecryptor.ProcessAndXorBlock(outBlock, xorBlock, plainText);
memcpy(dstData + pos, plainText, cpsize);
pos += cpsize; } while (pos < srclen-);
cout << "after encode and decode :" << dstData << endl;
free(dstData);
getchar();
return ;
}

最新文章

  1. MongoDB C Driver使用教程
  2. PRML
  3. 超越线程池:Java并发并没有你想的那么糟糕
  4. Django模块学习- django-pagination
  5. 在PLSQL中编译复杂的java(转)
  6. python compile
  7. activiti自定义流程之Spring整合activiti-modeler5.16实例(二):创建流程模型
  8. JDBC中的事务-Transaction
  9. 一个例子说明如何在DataSnap中使用FireDAC
  10. MFC窗口分割以及各窗口间的通讯
  11. Java设计模式之《外观模式》及应用场景
  12. linux redis安装
  13. Windows下安装和卸载MangoDB服务 --MangoDB
  14. shell无法捕获程序输出的问题
  15. ios-静态库,动态库,framework浅析(一)
  16. 雷林鹏分享: C# 简介
  17. pyqt 调用颜色选择器
  18. 使用Mac命令别名,提升工作效率
  19. sqlite 附加和分离数据库
  20. C++ operator关键字(重载操作符)

热门文章

  1. wepy 小程序开发(interceptor拦截器 &amp;&amp; WXS)
  2. 实验三 Java基本程序设计(2)
  3. tableView的嵌套
  4. 玩转Nginx location配置
  5. JNPF低代码开发框架代码生成器设计
  6. golang如何优雅的编写事务代码
  7. 监控-zabbix
  8. Java基础语法--java中字符串比较中的坑点
  9. 使用 git add -p 整理 patch
  10. [Python3]为什么map比for循环快