资源简介
AES加解密算法以及五种工作模式的实现,详细文档和源代码,自己写的,时间、精力以及能力有限,仅供参考。
代码片段和文件信息
#include
#include
#include
#include
#include
#include
using namespace std;
#include “AES.h“
enum Mode {ECB = 1 CBC = 2 CFB = 3 OFB = 4 CTR = 5};
#define MAXDATALENGTH 1024 //用于测试的数据的最大字节数
#define FILELENGTH 100 //用于测试工作模式的最大文件长度(字节数)
#define AESBLOCKSIZE 128
//用于测试程序正确性的明文、密文以及密钥
unsigned char entext[MAXDATALENGTH] = {
/******************************************************************************************\
用于测试程序正确性的明文文本,用于测试AES算法以及各种工作模式
在该程序中,这些数据的作用如下:
1. 在testAES()作为创建AES类时的输入,测试AES加密算法是否正确
2. 将被写入plaininput.dat文件中,作为testMode()的输入,即各工作模式的输入文件,被加密
如果要用不同的数据对AES算法和各工作模式进行测试,请修改 FILELEN 的值 和 entext 数组的内容
\******************************************************************************************/
0x00 0x11 0x22 0x33 0x44 0x55 0x66 0x77 0x88 0x99 0xaa 0xbb 0xcc 0xdd 0xee 0xff
0x00 0x11 0x22 0x33 0x44 0x55 0x66 0x77 0x88 0x99 0xaa 0xbb 0xcc 0xdd 0xee 0xff
0x00 0x11 0x22 0x33 0x44 0x55 0x66 0x77 0x88 0x99 0xaa 0xbb 0xcc 0xdd 0xee 0xff
0x00 0x11 0x22 0x33 0x44 0x55 0x66 0x77 0x88 0x99 0xaa 0xbb 0xcc 0xdd 0xee 0xff
0x00 0x11 0x22 0x33 0x44 0x55 0x66 0x77 0x88 0x99 0xaa 0xbb 0xcc 0xdd 0xee 0xff
0x00 0x11 0x22 0x33 0x44 0x55 0x66 0x77 0x88 0x99 0xaa 0xbb 0xcc 0xdd 0xee 0xff
0x00 0x11 0x22 0x33
};
unsigned char detext[32] = {
/******************************************************************************************\
用于测试程序正确性的密文文本,用于测试AES算法解密算法
1. 在testAES()作为创建AES类时的输入,测试AES解密算法是否正确
\******************************************************************************************/
0x69 0xc4 0xe0 0xd8 0x6a 0x7b 0x04 0x30 0xd8 0xcd 0xb7 0x80 0x70 0xb4 0xc5 0x5a
0x69 0xc4 0xe0 0xd8 0x6a 0x7b 0x04 0x30 0xd8 0xcd 0xb7 0x80 0x70 0xb4 0xc5 0x5a
};
unsigned char key[32] = {
/******************************************************************************************\
用于测试程序正确性的密钥文本,用于测试AES算法以及各种工作模式
弱要使用不同的密钥进行测试,请修改此处
\******************************************************************************************/
0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07
0x08 0x09 0x0a 0x0b 0x0c 0x0d 0x0e 0x0f
0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17
0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x1e 0x1f
};
int str2hex(char s[]); //将字符串转换作为十六进制数,求其整数值
void readVIfromStdin(unsigned char VI[] int len);//从标准输入读入长度为len的VI的数据(以< 0xff的1位或2位十六进制数读入)
//用ECB模式进行加解密
void ecb(int len //分组长度(与AES算法所用密钥长度相同)
unsigned char key[] //初始密钥
FILE *fin //输入文件
FILE *fout //输出文件
EnDe op); //用于选择加密操作还是解密操作
void cbc(int len unsigned char key[] FILE *fin FILE *fout EnDe op //用CFB模式进行加解密
unsigned char VI[]); //VI为初始向量
void cfb(int len unsigned char key[] FILE *fin FILE *fout EnDe op unsigned char VI[]);//用CBC模式进行加解密
void ofb(in
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 874 2009-10-28 09:27 AES算法及五种工作模式的实现\AES\AES.sln
..A..H. 25600 2009-10-31 02:16 AES算法及五种工作模式的实现\AES\AES.suo
文件 1128016 2009-10-31 02:15 AES算法及五种工作模式的实现\AES\debug\AES.ilk
文件 1674240 2009-10-31 02:15 AES算法及五种工作模式的实现\AES\debug\AES.pdb
文件 271590 2009-10-31 02:15 AES算法及五种工作模式的实现\AES\debug\AES.map
文件 241664 2009-10-31 02:15 AES算法及五种工作模式的实现\AES\debug\AES.exe
文件 3219 2009-10-28 21:02 AES算法及五种工作模式的实现\AES\AES\AES.vcproj
文件 1427 2009-10-31 02:16 AES算法及五种工作模式的实现\AES\AES\AES.vcproj.KRYSTOLLIA-NOTE.WangHua.user
文件 15220 2009-10-30 20:31 AES算法及五种工作模式的实现\AES\AES\AES.h
文件 23424 2009-10-31 01:21 AES算法及五种工作模式的实现\AES\AES\AES.cpp
文件 112 2009-10-31 02:15 AES算法及五种工作模式的实现\AES\AES\cbc_cipher.dat
文件 100 2009-10-31 02:16 AES算法及五种工作模式的实现\AES\AES\plaininput.dat
文件 120 2009-10-31 02:15 AES算法及五种工作模式的实现\AES\AES\ecb_cipher.dat
文件 100 2009-10-31 02:15 AES算法及五种工作模式的实现\AES\AES\ecb_plainoutput.dat
文件 100 2009-10-31 02:15 AES算法及五种工作模式的实现\AES\AES\cbc_plainoutput.dat
文件 100 2009-10-31 02:16 AES算法及五种工作模式的实现\AES\AES\cfb_cipher.dat
文件 100 2009-10-31 02:16 AES算法及五种工作模式的实现\AES\AES\cfb_plainoutput.dat
文件 100 2009-10-31 02:15 AES算法及五种工作模式的实现\AES\AES\ofb_cipher.dat
文件 100 2009-10-31 02:15 AES算法及五种工作模式的实现\AES\AES\ofb_plainoutput.dat
文件 100 2009-10-31 02:15 AES算法及五种工作模式的实现\AES\AES\ctr_cipher.dat
文件 100 2009-10-31 02:15 AES算法及五种工作模式的实现\AES\AES\ctr_plainoutput.dat
文件 21134 2009-10-31 02:15 AES算法及五种工作模式的实现\AES\AES\Debug\BuildLog.htm
文件 84992 2009-10-31 02:15 AES算法及五种工作模式的实现\AES\AES\Debug\vc80.idb
文件 171128 2009-10-31 02:15 AES算法及五种工作模式的实现\AES\AES\Debug\AES.obj
文件 145 2009-10-31 02:15 AES算法及五种工作模式的实现\AES\AES\Debug\AES.exe.intermediate.manifest
文件 69 2009-10-31 02:15 AES算法及五种工作模式的实现\AES\AES\Debug\mt.dep
文件 1027072 2009-10-31 02:16 AES算法及五种工作模式的实现\AES\AES.ncb
文件 101324 2009-10-31 02:32 AES算法及五种工作模式的实现\krystollia-AES的实现-实习报告.pdf
目录 0 2009-10-31 02:14 AES算法及五种工作模式的实现\AES\AES\Debug
目录 0 2009-10-31 02:14 AES算法及五种工作模式的实现\AES\debug
............此处省略6个文件信息
相关资源
- GCM-AES-128加解密及密钥打包aes_wrap
- aes最后一轮5个候选算法之一MARS实现源
- 微信小程序AES加密解密相关
- AES加密算法Dll
- 英特尔® 高级加密标准新指令英特尔
- cfb306d3b29f6ff0efea7782df211587.c
- Delphi加密算法大全2DES_3DES_3DES3_AES_ba
- TBCFB中鼓泡流化床的流体力学模拟及其
- AES加解密算法的实现
- AES标准文档fips-197.pdf
- 国密 SM4 ECB 加解密字符串
- 一段AES/CBC/NoPadding方式加密的文件及密
- Delphi XE2+标准AES加解密算法AES/EBCCBC/
- 典型密码算法FPGA实现-DESAES3DESECCSM2,
- AES加密解密js库
- db2aese_c_v10.1.lic
- AES-cbc加密 c文件
- 小程序AES加密
- MFC实现的AES加解密软件(内附源代码
- AES加解密
- AES C代码实现
- AES算法加解密的源代码,真正可支持
- 好用的AES加密解密工具源码
- 易语言实现RSA,ECC,DES,AES,DSA算法
- 算法工具集合 智能卡
- 安卓各种加密算法的实现 工具类
- 短信加密服务
- PB11.5调用wfEncode的
- CryptoJS v3.1.2.zip完整原版加密JS库
- jce_policy-8.zip
评论
共有 条评论