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

📄 des.h

📁 用C++开发的一个简单的DES加密解密程序
💻 H
字号:
// DES.h: interface for the CDES class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_DES_H__73DFD70F_BB37_4FD4_942C_54906CE719A1__INCLUDED_)
#define AFX_DES_H__73DFD70F_BB37_4FD4_942C_54906CE719A1__INCLUDED_

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

#define DES

#ifdef SDES
	#define KEY_TOTAL_LENGTH 10
	#define KEY_USED_BITS 10
	#define NO_OF_KEYS 2
	#define KEY_P_LENGTH 8
	#define DATA_LENGTH 8
	#define SROWS 4
	#define SCOLS 4
	#define NO_OF_S 2
#else if defined DES
	#define KEY_TOTAL_LENGTH 64
	#define KEY_USED_BITS 56
	#define NO_OF_KEYS 16
	#define KEY_P_LENGTH 48
	#define DATA_LENGTH 64
	#define SROWS 4
	#define SCOLS 16
	#define NO_OF_S 8
#endif


class CDES  
{
public:
	char* Decrypt();
	char* Encrypt();
	CDES(char* data, char* key);
	virtual ~CDES();

private:
	void GenKeys();
	char* PermuteSres_DES(char*);
	char* JoinSres_DES(char*,char*,char*,char*,char*,char*,char*,char*);
	void FillS7_DES();
	void FillS6_DES();
	void FillS5_DES();
	void FillS4_DES();
	void FillS3_DES();
	void FillS2_DES();
	void FillS1_DES();
	void FillS0_DES();
	void FillAllS();
	char* IPInverse(char*);
	char* Switch(char*);
	char* FKFunction(char*,int);
	char* FKFinal(char*,char*);
	char* XORLandP(char*,char*);
	void print(char*,int);
	void SampleKeys();
	char* PermuteSres(char*);
	char* JoinSres(char*,char*);
	char* Bin2bit(int);
	char* Bin4bit(int);
	int Dec2bit(char,char);
	int Dec4bit(char,char,char,char);
	int GetValue(int,int,int);
	char* GetSValue(char*,int);
	void FillS1_SDES();
	void FillS0_SDES();
	char XOR(char,char);
	char* XORwithKey(char*,int);
	char* ExtendedPermutation(char*);
	char* DataIP();
	char* DataIP_DES();
	void keyPermutationA(char*,int);
	char* JoinShifted(char*,char*);
	char* LeftShift(char*, char, int);
	char* keyIPermutation();
	char data[DATA_LENGTH];
	char Compkey[KEY_TOTAL_LENGTH];

	char key[NO_OF_KEYS][KEY_P_LENGTH];

	int S[NO_OF_S][SROWS][SCOLS];
};

#endif // !defined(AFX_DES_H__73DFD70F_BB37_4FD4_942C_54906CE719A1__INCLUDED_)

⌨️ 快捷键说明

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