资源简介
本资源是基于VC6.0编写的源代码,其中AesCBC.h和AesCBC.cpp文件实现了AES CBC模式128位、192位和256位加解密算法,并附有相关接口使用的实例测试代码。
代码片段和文件信息
/******************************************************************************
Copyright (c) 2012-2022 jiangkun. All rights reserved.
File Name : AesCBC.cpp
Version : Initial Draft
Author : jiangkun
Created : 2012/04/10
Last Modified :
Description : The Cipher Block chaining(CBC) mode encryption and decryption
Function List :
History :
Date : 2012/04/10
Author : jiangkun
Modification : Created file
******************************************************************************/
#include
#include
#include
#include “AesCBC.h“
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#if defined(_MSC_VER) && (defined(_M_IX86) || defined(_M_AMD64) || defined(_M_X64))
# define SWAP(x) (_lrotl(x 8) & 0x00ff00ff | _lrotr(x 8) & 0xff00ff00)
# define GETU32(p) SWAP(*((u32 *)(p)))
# define PUTU32(ct st) { *((u32 *)(ct)) = SWAP((st)); }
#else
# define GETU32(pt) (((u32)(pt)[0] << 24) ^ ((u32)(pt)[1] << 16) ^ ((u32)(pt)[2] << 8) ^ ((u32)(pt)[3]))
# define PUTU32(ct st) { (ct)[0] = (u8)((st) >> 24); (ct)[1] = (u8)((st) >> 16); (ct)[2] = (u8)((st) >> 8); (ct)[3] = (u8)(st); }
#endif
#ifdef AES_LONG
typedef unsigned long u32;
#else
typedef unsigned int u32;
#endif
typedef unsigned short u16;
typedef unsigned char u8;
#define MAXKC (256/32)
#define MAXKB (256/8)
#define MAXNR 14
#undef FULL_UNROLL
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/*
Te0[x] = S [x].[02 01 01 03];
Te1[x] = S [x].[03 02 01 01];
Te2[x] = S [x].[01 03 02 01];
Te3[x] = S [x].[01 01 03 02];
Td0[x] = Si[x].[0e 09 0d 0b];
Td1[x] = Si[x].[0b 0e 09 0d];
Td2[x] = Si[x].[0d 0b 0e 09];
Td3[x] = Si[x].[09 0d 0b 0e];
Td4[x] = Si[x].[01];
*/
static const u32 Te0[256] = {
0xc66363a5U 0xf87c7c84U 0xee777799U 0xf67b7b8dU
0xfff2f20dU 0xd66b6bbdU 0xde6f6fb1U 0x91c5c554U
0x60303050U 0x02010103U 0xce6767a9U 0x562b2b7dU
0xe7fefe19U 0xb5d7d762U 0x4dababe6U 0xec76769aU
0x8fcaca45U 0x1f82829dU 0x89c9c940U 0xfa7d7d87U
0xeffafa15U 0xb25959ebU 0x8e4747c9U 0xfbf0f00bU
0x41adadecU 0xb3d4d467U 0x5fa2a2fdU 0x45afafeaU
0x239c9cbfU 0x53a4a4f7U 0xe4727296U 0x9bc0c05bU
0x75b7b7c2U 0xe1fdfd1cU 0x3d9393aeU 0x4c26266aU
0x6c36365aU 0x7e3f3f41U 0xf5f7f702U 0x83cccc4fU
0x6834345cU 0x51a5a5f4U 0xd1e5e534U 0xf9f1f108U
0xe2717193U 0xabd8d873U 0x62313153U 0x2a15153fU
0x0804040cU 0x95c7c752U 0x46232365U 0x9dc3c35eU
0x30181828U 0x379696a1U 0x0a05050
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2012-10-17 11:36 AesTest\
文件 58474 2012-04-19 15:32 AesTest\AesCBC.cpp
文件 1680 2012-04-19 15:32 AesTest\AesCBC.h
文件 1744 2012-04-19 15:03 AesTest\AesTest.cpp
文件 4680 2012-04-19 20:15 AesTest\AesTest.dsp
文件 537 2012-04-06 10:00 AesTest\AesTest.dsw
文件 91136 2012-10-17 11:36 AesTest\AesTest.ncb
文件 54784 2012-10-17 11:36 AesTest\AesTest.opt
文件 248 2012-04-19 15:35 AesTest\AesTest.plg
目录 0 2012-10-17 11:37 AesTest\Debug\
文件 1214 2012-04-06 10:00 AesTest\ReadMe.txt
文件 294 2012-04-06 10:00 AesTest\StdAfx.cpp
文件 769 2012-04-06 10:00 AesTest\StdAfx.h
- 上一篇:一元多项式数据结构C语言
- 下一篇:so文件解析
相关资源
- aes加解密(vc源程序)
- AES-128-CBC算法C语言源码已经修改,可
- C++实现AES、DES加密算法含MFC界面
-
C++_AES_ECB_ba
se64 - SM4(ECB、CBC、CTR、CFB、OFB)加密算法
- YCbCr、混合高斯以及YCbCg肤色检测模型
- AES算法采用verilog硬件实现
- AES GCM算法源码
- AES 加密 C++源码
- stm32L系列F系列 加密库Cryptographic lib
- VC++ AES加密算法实现与范例的源代码
- MFC实现AES非对称加密解密算法
- AES加解密算法实现MFC
- 基于C++用用CBC与ECB模式的DES加解密
- 高级加密标准 AES (含AES的数学基础,
- AES加密/解密C++源代码
- AES算法加密解密C++源码及程序完整的
- AES GCM和ECB加密软件,和工程文件
- AES加密解密算法实现C、C++
- AES加密解密程序(C++)+实验报告
- aes加密算法源码
- AES MFC
- AES加密的HLS实现与优化
- DES_CBC加密,解密多种格式文件,基于
- 混合加密程序 VC++包括DES加密和AES加密
- AES 算法实现(linux) 可移植
- CMAES算法C++
- AesForC.rar
- AES加密算法C++语言实现
- AES对称加密解密文件
评论
共有 条评论