?? _des.h
字號(hào):
//---------------------------------------------------------------------------
#ifndef _DESH
#define _DESH
#define EN0 0 /* MODE == encrypt */
#define DE1 1 /* MODE == decrypt */
//---------------------------------------------------------------------------
class DES
{
private:
unsigned long KnL[32]; //用于存儲(chǔ)加工過(guò)的密鑰寄存器
unsigned long KnR[32];
unsigned long Kn3[32];
static unsigned char Df_Key[24]; //加或解密用的包
static unsigned long SP1[64];
static unsigned long SP2[64];
static unsigned long SP3[64];
static unsigned long SP4[64];
static unsigned long SP5[64];
static unsigned long SP6[64];
static unsigned long SP7[64];
static unsigned long SP8[64];
static unsigned char pc1[56];
static unsigned char pc2[48];
static unsigned char totrot[16];
static unsigned short bytebit[8];
static unsigned long bigbyte[24];
void CooKey(register unsigned long * raw1); //按位分解密碼
void UseKey(register unsigned long * from); //將處理過(guò)密鑰存入寄存器
static void Scrunch(register unsigned char * outof, register unsigned long * into);
static void Unscrun(register unsigned long * outof, register unsigned char * into);
static void DESfunc(register unsigned long * block, register unsigned long * keys);
void Cpkey(register unsigned long * into); //在經(jīng)過(guò)加密處理密鑰前拷貝密鑰
void Cp2Key(register unsigned long * into);
void Use2Key(register unsigned long * from);
void Cp3key(register unsigned long * into);
void Use3Key(register unsigned long * from);
protected:
public:
void DESKey(unsigned char *key, short edf); //處理8位密鑰
void Des(unsigned char * inblock, unsigned char * outblock); //用8位密鑰處理8位信息
void DES2Key(unsigned char * hexkey, short mode); //處理16位密鑰
void DDes(unsigned char * from, unsigned char * into); //用16位密鑰處理8位信息
void D2Des(unsigned char * from, unsigned char * into); //用16位密鑰處理16位信息
void MakeKey(register char * aptr, register unsigned char * kptr); //根據(jù)密碼生成8位密鑰
void Make2Key(register char * aptr, register unsigned char * kptr); //根據(jù)密碼生成16位密鑰
void DES3Key(unsigned char * hexkey, short mode); //處理24位密鑰
void D3_1Des(unsigned char * from, unsigned char * into); //根據(jù)24位密鑰處理8位信息,與DDes完全一樣
void D3_2Des(unsigned char * from, unsigned char * into); //根據(jù)24位密鑰處理16位信息,與D2Des完全一樣
void D3_3Des(unsigned char * from, unsigned char * into); //根據(jù)24位密鑰處理24位信息
void Make3Key(register char * aptr, register unsigned char * kptr); //根據(jù)密碼生成24位密鑰
};
#endif
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -