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

📄 des1.h

📁 DES 实现 包括 纯DES 3DES 和 CBC
💻 H
字号:
// DES1.h: interface for the CDES class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_DES1_H__E14C857B_A299_45F6_B8D5_4ECAF284180D__INCLUDED_)
#define AFX_DES1_H__E14C857B_A299_45F6_B8D5_4ECAF284180D__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "afxtempl.h"
//#include "tables.h"
//typedef CArray<char,char&> ARE;
//typedef CArray<ARE*,ARE*&> CCharArray;
#include "tablearray.h"
class CDES  
{
public:
	//pure DES
	void Crypto(CTableArray<ULONG> &,CTableArray<ULONG> &,BOOL,CTableArray<ULONG>&result);
	unsigned char * Crypto(UCHAR text[8],UCHAR key[8],BOOL DIRECTION);
	
	//DES in CBC mode
	void CBCDES(CTableArray<ULONG> &Text,CTableArray<ULONG> &KEY,BOOL DIRECTION,CTableArray<ULONG>&result);
	unsigned char * CBCDES(UCHAR text[8],UCHAR key[8],BOOL DIRECTION);
	
	//3DES
	void TripleDES(CTableArray<ULONG> &Text,CTableArray<ULONG> &KEY1,CTableArray<ULONG> &KEY2,BOOL DIRECTION,CTableArray<ULONG>&result);
	unsigned char * TripleDES(UCHAR text[8],UCHAR key1[8],UCHAR key2[8],BOOL DIRECTION);
	
	//3DES in CBC mode
	void CBC3DES(CTableArray<ULONG> &Text,CTableArray<ULONG> &KEY1,CTableArray<ULONG>&KEY2,BOOL DIRECTION,CTableArray<ULONG>&result);
	unsigned char * CBC3DES(UCHAR text[8],UCHAR key1[8],UCHAR key2[8],BOOL DIRECTION);

	
	//functional methods
	resetCBC();
	void KeyGen(CTableArray<ULONG>& KEY,int time,CTableArray<ULONG>&result); //子密钥产生
	void SBOX(CTableArray<ULONG> &aftxor,CTableArray<ULONG> &result);//S盒
	ULONG f(ULONG &R,CTableArray<ULONG>&K);//f函数
	static CString * showBit(CTableArray<ULONG>* in); //显示BIT
	void Permute(CTableArray<ULONG>&src,CTableArray<UINT>&reftbl,CTableArray<ULONG>&result);//置换

	static enum{ENCRYPT=TRUE,DECRYPT=FALSE};
	CDES();
	virtual ~CDES();
private:
	 CTableArray<ULONG> LastCipher;
	 ULONG lastcipher[2];
};


#endif // !defined(AFX_DES1_H__E14C857B_A299_45F6_B8D5_4ECAF284180D__INCLUDED_)

⌨️ 快捷键说明

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