资源简介
在VC 6.0平台上基于C语言实现的AES加解密源码,在VC 6.0平台上基于C语言实现的AES加解密源码,在VC 6.0平台上基于C语言实现的AES加解密源码。
代码片段和文件信息
#include
#include
#include “aes.h“
#include “conf.c“
#ifndef GET_UINT32
//宏定义一个移位操把数组b的四个值赋值给n
#define GET_UINT32(nbi) do { \
(n) = ((uint32_t)(b)[(i) ] ) \
| ((uint32_t)(b)[(i) + 1] << 8) \
| ((uint32_t)(b)[(i) + 2] << 16) \
| ((uint32_t)(b)[(i) + 3] << 24);\
} while(0)
#endif
#define ROTL8(x) (((x) << 24) | ((x) >> 8))
#define ROTL16(x) (((x) << 16) | ((x) >> 16))
#define ROTL24(x) (((x) << 8) | ((x) >> 24))
//s盒替换每一位
#define SUB_WORD(x) (((uint32_t)S_BOX[(x)&0xFF]) \
| ((uint32_t)S_BOX[((x) >> 8)&0xFF] << 8) \
| ((uint32_t)S_BOX[((x) >> 16)&0xFF] << 16) \
| ((uint32_t)S_BOX[((x) >> 24)&0xFF] << 24) \
)
#define sub_bytes(state) _sub_bytes(state S_BOX)
#define inv_sub_bytes(state) _sub_bytes(state INV_S_BOX)
#define shift_rows(state) _shift_rows(state ROTL8 ROTL16 ROTL24)
#define inv_shift_rows(state) _shift_rows(state ROTL24 ROTL16 ROTL8)
#define mix_columns(state) _mix_columns(state MIX)
#define inv_mix_columns(state) _mix_columns(state INV_MIX)
//行移位
#define _shift_rows(state OP1 OP2 OP3) do { \
transport(state); \
*(uint32_t *)(state+4) = OP1(*(uint32_t *)(state+4)); \
*(uint32_t *)(state+8) = OP2(*(uint32_t *)(state+8)); \
*(uint32_t *)(state+12) = OP3(*(uint32_t *)(state+12)); \
transport(state); \
} while(0)
/****************************************************************************
Description: 行移位处理函数(transport)
Input parameters:
uint8_t state:需要行移位的数组
Output parameters:
uint8_t state:行移位的结果
Returned value:
NULL
Created by:
崔龙龙 (2017-09-01)
Modified by:
NULL
****************************************************************************/
static void transport(uint8_t state[BLOCK_SIZE])
{
uint8_t _state[4][4];
int rc;
assert(state != NULL);//对参数校验
for (r = 0; r < 4; ++r)
for (c = 0; c < 4; ++c)
_state[r][c] = state[(c<<2)+r];
memcpy(state _state sizeof(_state));
}
/****************************************************************************
Description: 数组异或(add_round_key) 轮密钥加
Input parameters:
uint8_t state:需要求异或的数组1
const uint8_t key : 需要求异或的数组2
Output parameters:
uint8_t state:求异或后的结果
Returned value:
NULL
Created by:
崔龙龙 (2017-09-01)
Modified by:
NULL
****************************************************************************/
static void add_round_key(uint8_t state[BLOCK_SIZE] const uint8_t key[BLOCK_SIZE])
{
int i;
assert(state != NULL);//对参数校验
assert(key != NULL);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 13813 2017-09-02 10:08 AesForC\aes.c
文件 735 2017-08-30 10:08 AesForC\aes.h
文件 4466 2017-09-01 16:26 AesForC\AesForC.dsp
文件 522 2017-09-01 16:26 AesForC\AesForC.dsw
文件 41984 2017-09-02 10:20 AesForC\AesForC.ncb
文件 49664 2017-09-02 10:20 AesForC\AesForC.opt
文件 248 2017-09-02 10:19 AesForC\AesForC.plg
文件 3437 2017-09-01 18:28 AesForC\conf.c
文件 15592 2017-09-02 10:19 AesForC\Debug\aes.obj
文件 180286 2017-09-02 10:19 AesForC\Debug\AesForC.exe
文件 231044 2017-09-02 10:19 AesForC\Debug\AesForC.ilk
文件 173636 2017-09-02 10:19 AesForC\Debug\AesForC.pch
文件 451584 2017-09-02 10:19 AesForC\Debug\AesForC.pdb
文件 2241 2017-09-01 18:35 AesForC\Debug\conf.obj
文件 5801 2017-09-02 10:19 AesForC\Debug\main.obj
文件 33792 2017-09-02 10:19 AesForC\Debug\vc60.idb
文件 53248 2017-09-02 10:19 AesForC\Debug\vc60.pdb
文件 430 2017-09-02 10:26 AesForC\Log.txt
文件 3002 2017-09-02 09:11 AesForC\main.c
文件 4096 2017-09-01 16:08 AesForC\si\AES.IAB
文件 368 2017-09-01 16:08 AesForC\si\AES.IAD
文件 4096 2017-09-01 16:08 AesForC\si\AES.IMB
文件 368 2017-09-01 16:08 AesForC\si\AES.IMD
文件 20 2017-09-02 10:26 AesForC\si\AES.PFI
文件 776 2017-09-02 10:26 AesForC\si\AES.PO
文件 2072 2017-09-02 10:21 AesForC\si\AES.PR
文件 10632 2017-09-02 10:21 AesForC\si\AES.PRI
文件 8940 2017-09-02 10:26 AesForC\si\AES.PS
文件 15125 2017-09-02 10:26 AesForC\si\AES.WK3
目录 0 2017-09-02 10:19 AesForC\Debug
............此处省略5个文件信息
相关资源
- aes加解密(vc源程序)
- AES-128-CBC算法C语言源码已经修改,可
- C++实现AES、DES加密算法含MFC界面
-
C++_AES_ECB_ba
se64 - AES算法采用verilog硬件实现
- AES GCM算法源码
- AES 加密 C++源码
- stm32L系列F系列 加密库Cryptographic lib
- VC++ AES加密算法实现与范例的源代码
- MFC实现AES非对称加密解密算法
- AES加解密算法实现MFC
- 高级加密标准 AES (含AES的数学基础,
- AES加密/解密C++源代码
- AES算法加密解密C++源码及程序完整的
- AES GCM和ECB加密软件,和工程文件
- AES加密解密算法实现C、C++
- AES加密解密程序(C++)+实验报告
- aes加密算法源码
- AES MFC
- AES加密的HLS实现与优化
- 混合加密程序 VC++包括DES加密和AES加密
- AES CBC加解密源代码
- AES 算法实现(linux) 可移植
- CMAES算法C++
- AES加密算法C++语言实现
- AES对称加密解密文件
- AES加密可加密文件
- AES5种加密模式源码C语言
- AES密码学课程设计带报告
- AES加密算法(C++实现)
川公网安备 51152502000135号
评论
共有 条评论