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