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

📄 idea.h

📁 我写的利用IDEA算法的加密程序
💻 H
字号:
#ifndef IDEA_H
#define IDEA_H

#include <vcl.h>



#define IDEAKEYSIZE 16				//密钥长度,16字节共128位
#define IDEABLOCKSIZE 8				//每次加密数据块大小,8字节64位				
#define word16 unsigned short int	//定义16位无符号整数		
#define word32 unsigned int			//定义32位无符号整数	
#define ROUNDS	8					//加密轮数,设定为8轮
#define KEYLEN	(6*ROUNDS+4)		//密钥长度,8轮时为52个子密钥,每个子密钥为16位

#define low16(x) ((x) & 0xffff)

typedef word16 IDEAkey[KEYLEN];		//说明存储密钥的数组,为52个word16类型	

//IDEA算法涉及函数
void en_key_idea(word16 userkey[8],IDEAkey Z);	//由userkey中的128位加密密钥生成子密钥存放在Z中
void de_key_idea(IDEAkey Z, IDEAkey DK);		//由Z中的加密子密钥生成解密子密钥存放在DK中
void cipher_idea(word16 in[4],word16 out[4],IDEAkey Z);	//对in中的64位数据用加密密钥Z进行加密,结果存放在out中
word16 inv(word16 x);				//
word16 mul(word16 a,word16 b);		//

//辅助数据结构

//密钥转化函数,将用户输入的字符串转化成128位密钥存放在userkey中
void set_bits(word16 *p, int n, bool isone); //给word16类型第n位设置成0或1
bool get_bits(char c, int n);    //返回c的第n位是1还是0
void key_gen(char pass[], word16 userkey[]);

#endif

⌨️ 快捷键说明

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