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

📄 des.h

📁 数据加密的工具源代码
💻 H
字号:
// DES.h: interface for the DES class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_DES_H__E8699A01_4551_11D5_9404_0050BA228C37__INCLUDED_)
#define AFX_DES_H__E8699A01_4551_11D5_9404_0050BA228C37__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#define ENCRYPT	 0 //加密过程
#define DESCRYPT 1 //解密过程

class CDES  
{
public:
	CDES();
	~CDES();
	
	void deskey(unsigned char * key,short def);
	//单DES加密8位密钥
	void des(unsigned char * inblock,unsigned char * outblock);
	//单DES加密8位数据
	void des2key(unsigned char *hexkey,short mode);
	//双DES加密16位密钥
	void Ddes(unsigned char *from,unsigned char *into);
	//双DES或三DES 加密8位数据
	void D2des(unsigned char *from, unsigned char *into);
	//双DES或三DES 加密16位数据
	void des3key(unsigned char *hexkey,short mode);
	//三DES加密24位密钥
	void D3des(unsigned char *from,unsigned char *into);
	//三DES加密24位数据
private:
	class M68K
	{
		unsigned long blok[2];
		unsigned short word[4];
		unsigned char byte[8];
	};
	void unscrun(unsigned long * outof, unsigned char * into);
	void desfunc(unsigned long * block, unsigned long * keys);
	void scrunch(unsigned char * outof, unsigned long * into);
	void cookey(unsigned long * raw1);
	void usekey(unsigned long * from);
	void cpkey(unsigned long * into);

	void makekey(char *aptr,unsigned char *kptr);
	void make2key(char *aptr,unsigned char *kptr);
	void cp2key(unsigned long *into);
	void use2key(unsigned long *from);
	void cp3key(unsigned long *into);
	void use3key(unsigned long *from);
	void make3key(char *aptr,unsigned char *kptr);
};

#endif // !defined(AFX_DES_H__E8699A01_4551_11D5_9404_0050BA228C37__INCLUDED_)

⌨️ 快捷键说明

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