📄 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 + -