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

📄 cdes.h

📁 学校两基管理系统
💻 H
字号:
// CDES.h: interface for the CDES class.
//
//////////////////////////////////////////////////////////////////////
//#include "stdio.h"
//#include <memory.h>
#if !defined(AFX_DES_H)
#define AFX_DES_H

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

class DES  
{
public:
	DES();
	virtual ~DES();
	void Encode(unsigned char orig_str[8],unsigned char orig_pass[8],unsigned char encode_str[8]);
	void Uncode(unsigned char orig_str[8],unsigned char orig_pass[8],unsigned char uncode_str[8]);
//private:
	/**********Byte8To64Bit**********/
// Function Name: Byte8To64Bit
// 传入参数: Byte[8]
// 功能:将传入的8bytes 转为64bits (binary type)
// 传出参数:Bit[64]
// 返回值: void
/********************************/
	void Byte8To64Bit(unsigned char Byte[8],unsigned char Bit[64]);
/**********Bit64To8Byte**********/
// Function Name: Bit64To8Byte
// 传入参数: Bit[64]
// 功能:将传入的64bits 转为8bytes
// 传出参数:Byte[8]
// 返回值: void
/********************************/
	void Bit64To8Byte(unsigned char Bit[64],unsigned char Byte[8]);
/**********BuildKey**********/
// Function Name: BuildKey
// 传入参数: origokey[8]
// 功能:由传入的origokey经过位移后得K1,K2...K16(每个key为48位),
//       存于key[i]中
// 传出参数:key[16][8]
// 返回值: void
/********************************/

	void BuildKey(unsigned char origokey[8],unsigned char key[16][8]);
/***********Expand**********/
// Function Name: Expand
// 传入参数: orig(32bits)
// 功能:将传入的32bit扩展为48bit,
// 传出参数:Ex[48](48bits)
// 返回值: void
/********************************/
	void Expand(unsigned char *orig,unsigned char Ex[48]);
/***********Bit64To32Bit**********/
// Function Name: Bit64To32Bit
// 传入参数: Bit64
// 功能:将传入的64bit均分为8bit,
//       把高4位截去(eg:00001011=>1011)
// 传出参数:Bit32
// 返回值: void
/********************************/
	void Bit64To32Bit(unsigned char *Bit64,unsigned char *Bit32);

/***********S_Box**********/
// Function Name: S_Box
// 传入参数: Ex[48]
// 功能:将传入的48bits,经过S盒压缩替换为32bits
// 传出参数:S_Bit[32]
// 返回值: void
/********************************/

	void S_Box(unsigned char Ex[48],unsigned char S_Bit[32]);

private:
	
	int IP[64];
	int E[48];
	int IP_1[64];
	unsigned char S1[4][16];
	unsigned char S2[4][16];
	unsigned char S3[4][16];
	unsigned char S4[4][16];
	unsigned char S5[4][16];
	unsigned char S6[4][16];
	unsigned char S7[4][16];
	unsigned char S8[4][16];

	int P[32];

	int PC_1[56];

	int PC_2[48];
	int LS[16];
	unsigned char CONST1[8];
	unsigned char CONST2[8];

};

#endif // !defined(AFX_CDES_H)
/*
void main()
{
	DES des;
	unsigned char va[8]="9605001";
	unsigned char pass[4]="yao";
	char result[20];
	memset(result,0,20);
	des.Encode(va,pass,(unsigned char *)result);
	printf(result);
	printf("\n Hello!\n");	
	des.Uncode((unsigned char *)result,pass,(unsigned char *)result);
	printf(result);

}*/

⌨️ 快捷键说明

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