📄 idea.h
字号:
// Idea.h: interface for the CIdea class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_IDEA_H__39CD5B50_BDF2_4F4D_B1FB_10D2696B9965__INCLUDED_)
#define AFX_IDEA_H__39CD5B50_BDF2_4F4D_B1FB_10D2696B9965__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
typedef unsigned char bit8;
typedef unsigned short bit16;
typedef unsigned long bit32;
#define IDEAKEYSIZE 16
#define IDEABLOCKSIZE 8
#define ROUNDS 8
#define KEYLEN (6*ROUNDS+4)
#define low16(x) ((x) & 0xFFFF)
#define MUL(x,y) ( x=mul( low16(x),y ) )
////////////////////////////////////////////////
//错误预定义
////////////////////////////////////////////////
#define CAN_NOT_OPEN_SOURCE_FILE 100
#define CAN_NOT_OPEN_DIRECT_FILE 200
#define SUCCESS 300
//以下定义IDEA类
//有个三个组成
//组成一、: 类的私有数据成员
//组成二、: 类的私有函数成员
//组成三、: 类的公有函数成员
class CIdea
{
////组成一:////
//////////////////////////////////////////////////////////////////////////////////////////
//类的私有数据成员
//自己定义的数据
//////////////////////////////////////////////////////////////////////////////////////////
private:
//[1].
//加密解密密钥
bit8 UserKey[16];
//[2].
//加密解密子密钥
bit16 EnSubKeys[52];
bit16 DeSubKeys[52];
////组成二////
//////////////////////////////////////////////////////////////////////////////////////////
//类的私有成员函数
//一、加密,解密方法用到的私有成员函数
//////////////////////////////////////////////////////////////////////////////////////////
private:
//[1].
//作用:生成加密子的密钥
void en_key_idea(bit8 *userkey, bit16 *Z);
//[2].
//作用:生成解密的子密钥
// 调用了[3].
void de_key_idea(bit16 *Z, bit16 *DK);
//[3].
//乘法求逆
bit16 inv(bit16 x);
//[4].
//作用:加密,解密64Bit
// 调用了[5]
void cipher_idea(bit8* bu1, bit8* bu2,bit16* Z);
//[5].
//乘法
bit16 mul( bit16 a,bit16 b);
//[6].
//利用随机种子生成对称密钥
// 同时修改随机种子的函数
void MakeRadomKey(unsigned char*);
////组成三////
/////////////////////////////////////////////////////////////////////////////////////
//类的公共成员函数
//有八个部分
//一、构造函数
//二、析构函数
//三、加密方法
//四、解密方法
//五、加密字符串的方法
//六、解密字符串的方法
//七、设置密钥的方法
//八、返回密钥的方法
/////////////////////////////////////////////////////////////////////////////////////
public:
//构造函数
CIdea(){}
//析构函数
~CIdea(){}
//加密方法
int IdeaEncrypt(char *f1,char *f2);
//解密方法
int IdeaDecrypt(char *f1,char *f2);
//加密字符串的方法
void EnString(unsigned char*,unsigned char*);
//解密字符串的方法
void DeString(unsigned char*,unsigned char*);
//设置密钥的方法
void SetKey(unsigned char *);
//返回密钥的方法
void GetKey(unsigned char *);
};
#endif // !defined(AFX_IDEA_H__39CD5B50_BDF2_4F4D_B1FB_10D2696B9965__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -