资源简介
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个文件信息
相关资源
- RSA AES DES ECC加密算法源码
- 提供几个加密算法的源码
- 联想K29最新1.70BIOS修改版,去白名单验
- AES for Delphi 加密解密
- aes加密js工具包
- AES高级加密算法的verilog语言实现
- AES 加密工具ECBCBCCMAC
- AES工具 V1.0.2 ,AES计算工具 hex的aes计
- AES加解密工具支持16进制.zip
- STM32 加密算法 源码代码包括AES的5种
- stm32f103AES加密 cbc模式
- Delphi AES加密算法程序.rar
- 金蝶AESB中间件和SOA架构ppt
- AES加解密算法的FPGA优化设计
-
STM32F103C8T6_AES-128-CTR_ba
se64密文解密 - AES加解密aes128/192/256 ecb cbc cfb ofb ctr
- AES_加密解密控件源代码Delphi.rar
- fe1019deb38ad5ecbfad676675965146.pdf
- AES加密BMP图片
- AIR-WLC2100-K9-7-0-252-0-ER.aes
- AES加解密算法软件程序包含全部模式
- AES加密完整Verilog源码
- AES-128加密解密源码及算法详解。
- 高级加密标准AES算法:Rijndael的设计
- CFB锅炉热力计算件
- 54d7fd2ecbc38e44d49e77d1c214028e.rar
- AES加密、解密代码实现C、SV、Verilog
- AES算法的FPGA实现与分析_hao
- 联想K29最新1.70BIOS修改版,去白名单验
- SFCipher加解密工具
评论
共有 条评论