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