// 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 ;
}

Crypto++ AES 加密解密流程的更多相关文章

  1. crypto AES 加密 解密

    1.aes加密解密说明 https://juejin.im/entry/59eea48e6fb9a0451968c25f aes是对称加密算法 md5是摘要算法,不算是加密,主要用来对信息一致性和完整 ...

  2. AES加密解密——AES在JavaWeb项目中前台JS加密,后台Java解密的使用

    一:前言 在软件开发中,经常要对数据进行传输,数据在传输的过程中可能被拦截,被监听,所以在传输数据的时候使用数据的原始内容进行传输的话,安全隐患是非常大的.因此就要对需要传输的数据进行在客户端进行加密 ...

  3. C#, Java, PHP, Python和Javascript几种语言的AES加密解密实现[转载]

    原文:http://outofmemory.cn/code-snippet/35524/AES-with-javascript-java-csharp-python-or-php c#里面的AES加密 ...

  4. java使用AES加密解密 AES-128-ECB加密

    java使用AES加密解密 AES-128-ECB加密 import javax.crypto.Cipher; import javax.crypto.spec.SecretKeySpec; impo ...

  5. php与java通用AES加密解密算法

    AES指高级加密标准(Advanced Encryption Standard),是当前最流行的一种密码算法,在web应用开发,特别是对外提供接口时经常会用到,下面是我整理的一套php与java通用的 ...

  6. Java 关于密码处理的工具类[MD5编码][AES加密/解密]

    项目中又遇到了加密问题,又去翻了半天,然后做测试,干脆就把常用的两类小结一下. 1.第一种所谓的MD5加密 其实也不算加密,只是基于Hash算法的不可逆编码而已,等于说,一旦经过MD5处理,是不可能从 ...

  7. C# 实现 JAVA AES加密解密[原创]

    以下是网上普遍能收到的JAVA AES加密解密方法. 因为里面用到了KeyGenerator 和 SecureRandom,但是.NET 里面没有这2个类.无法使用安全随机数生成KEY. 我们在接收J ...

  8. Java AES加密解密工具 -- GUI 、在线传输文件

    原理 对于任意长度的明文,AES首先对其进行分组,每组的长度为128位.分组之后将分别对每个128位的明文分组进行加密. 对于每个128位长度的明文分组的加密过程如下:     (1)将128位AES ...

  9. AES加密解密&amp;&amp;SHA1、SHA加密&amp;&amp;MD5加密

    AES加密解密 SHA1.SHA加密 MD5加密 二话不说立即附上代码: package com.luo.util; import java.io.UnsupportedEncodingExcepti ...

随机推荐

  1. Codeforces1157B(B题)Long Number

    B. Long Number You are given a long decimal number aa consisting of nn digits from 11 to 99. You als ...

  2. 5.3 Go 匿名函数

    5.3 Go 匿名函数 Go支持匿名函数,顾名思义就是没名字的函数. 匿名函数一般用在,函数只运行一次,也可以多次调用. 匿名函数可以像普通变量一样被调用. 匿名函数由不带函数名字的函数声明与函数体组 ...

  3. Linux系统rabbitmq安装

    rabbitmq消息队列(Message Queue)是一种应用间的通信方式,消息发送后可以立即返回,由消息系统来确保消息的可靠传递.消息发布者只管把消息发布到 MQ 中而不用管谁来取,消息使用者只管 ...

  4. MYSQL mysql.user表中权限对应的解释

    命令标识 授权表中对应的列 说明 CREATE Create_priv 创建数据库.表或索引 CREATE TEMPORARY TABLES Create_tmp_table_priv 创建临时数据表 ...

  5. Hyperledger Fabric开发(一):环境配置

    macOS系统下配置hyperledger fabric环境 cURL mac中自带curl,如果需要下载最新版本,则可按照以下命令,并将路径添加在系统环境变量的最前面即可 brew install ...

  6. Vue基础:子组件抽取与父子组件通信

    在工作中承担一部分前端工作,主要使用Vue + Element UI. 随着版本迭代,需求增加,页面往往变得更加臃肿,不易维护.学习子组件的封装和抽取,能更好适应需求. 为什么需要子组件 可复用 将重 ...

  7. JS中的bind方法

    # bind的机制 ``` var foo = function(){} var bar = foo; console.log(foo === bar) //true /--------------- ...

  8. mac下安装rabbitmq和php+rabbitq

    一.首先使用brew安装rabbitmq brew install rabbitmq 安装完成,终端会出现如下内容,如图: 启动RabbitMQ 前台运行rabbitmq-server 后台运行bre ...

  9. matlab自学笔记

    1.字符串格式化,用sprintf如a=sprintf('%.2f_除以%d等于%.3f',1.5,2,0.75)%则a=1.50除以2等于0.750 2.for循环只能针对整数,不能遍历字符串或其他 ...

  10. P1057 传球游戏 - 完美错解

    //作者:pb2 博客:https://www.luogu.com.cn/blog/pb2/ 或 http://www.cnblogs.com/p2blog//博客新闻1:"WPS开机自启, ...