⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 aes.h

📁 AES加密算法vC++实现类源码 hello 1243435
💻 H
字号:

#pragma once

#define  decrypt	TRUE
#define  encrypt	FALSE  
#define	 TYPE		int		

typedef struct _AES{
	int		Nb;
	int		Nr;
	int		Nk;
	unsigned long   *Word;
	unsigned long   *State;
}AES;

/*
加密数据
byte *input	明文
byte *inSize 明文长
byte *out	密文存放的地方
byte *key	密钥key
byte *keySize 密钥长
*/
void Cipher(
			unsigned char* input, 
			int inSize, 
			unsigned char* out, 
			unsigned char* key, 
			int keySize);

/*
解密数据
byte *input	密文
int  *inSize 密文长
byte *out	明文存放的地方
byte *key	密钥key
int  *keySize 密钥长
*/
void InvCipher(
			   unsigned char* input, 
			   int inSize,  
			   unsigned char* out,  
			   unsigned char* key, 
			   int keySize);

/*
生成加密用的参数AES结构
int		inSize	块大小
byte*	密钥
int		密钥长
unsigned long 属性(标实类型)
返回AES结构指针
*/
AES *InitAES(AES *aes,
			int inSize, 
			unsigned char* key, 
			int keySize, TYPE type);

/*
生成加密用的参数AES结构
int		inSize	块大小
byte*	密钥
int		密钥长
返回AES结构指针
*/
AES *InitAES(
			int inSize, 
			unsigned char* key, 
			int keySize, TYPE );

/*
加密时进行Nr轮运算
AES * aes	运行时参数
*/
void CipherLoop(
			AES *aes);
/*
解密时进行Nr轮逆运算
AES * aes	运行时参数
*/
void InvCipherLoop(
			AES *aes);

/*
释放AES结构和State和密钥库word
*/
void freeAES(
			 AES *aes);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -