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

📄 hdes.h

📁 枚举主机网络设备
💻 H
字号:
// HDes.h: interface for the CHDES class.
// 数据吞吐量 111.6K/S
//////////////////////////////////////////////////////////////////////

#ifndef _DES_HPP_
#define _DES_HPP_

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

#include "HLib32.h"
#include "HGeneric.h"

//些DES算法有误,用HAES代替2006-03-15
class AFX_EXT_CLASS CHDES:public CHGeneric 
{
public:
	CHDES();
	virtual ~CHDES();
	
	DWORDLONG EnUnit(DWORDLONG date);//基本加密单元,分组长=64bit
	DWORDLONG DeUnit(DWORDLONG date);//基本脱密单元,分组长=64bit
	void SetPwd(DWORDLONG pwd);//设置密钥,密钥长=64bit

	void Encrypt(BYTE *buf,DWORD dwLen,BYTE *bufKey);//
	void Decrypt(BYTE *buf,DWORD dwLen,BYTE *bufKey);//
	int GenerateRand(BYTE *bufRand,unsigned long dwLength);//CBC模式生成随机数
	int MakeRand(BYTE* bufP,BYTE* bufRand,DWORD dwLen);

private:
	void Generate_S(void);
	DWORDLONG FP(DWORDLONG);
	DWORDLONG FS(DWORDLONG);
	DWORDLONG Exp(DWORDLONG);
	DWORDLONG Des_left(DWORDLONG);

private:
	DWORDLONG TS[8][64];	
	DWORDLONG Pwd[16];
	DWORDLONG temp,temp1;
	static int ROWL[16];
	static int ROWR[16];
	static DWORDLONG S[512];
	static DWORDLONG PC1[56];
	static DWORDLONG PC2[48];
	static DWORDLONG E[48];
	static DWORDLONG P[32];
	DWORDLONG dwlData_S[9][4][16];
};

#endif // _DES_HPP_

⌨️ 快捷键说明

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