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

📄 idea.h

📁 利用网络信息加密技术实现电子邮件的安全传输。
💻 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 + -