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

📄 des.h

📁 HGE 2D游戏引擎制作的一个演示
💻 H
字号:
#ifndef CORE_DES_H
#define CORE_DES_H
#pragma once

class DES
{
public:
	DES();
	~DES();

	// In 与 Out 可使用同一缓冲,此时加/解密后的数据将覆盖输入缓冲区(In)的内容
	// 输出缓冲区(Out)的长度 >= ((datalen+7)/8)*8,即比datalen大的且是8的倍数的最小正整数
	// 当keylen>8时系统自动使用3次DES加/解密,否则使用标准DES加/解密.超过16字节后只取前16字节

	//DES加密
	//char* Out:输出加密以后的子串
	//char* In:输入需要加密的字串
	//long datalen:原始字串长度
	//const char* Key:加密钥匙字串
	//int keylen:加密钥匙字串长度
	static bool ENCRYPT(char* Out,char* In,long datalen,const char* Key,int keylen);

	//DES解密
	//char* Out:输出解密以后的子串
	//char* In:输入需要解密的字串
	//long datalen:原始字串长度
	//const char* Key:加密钥匙字串
	//int keylen:加密钥匙字串长度
	static bool DECRYPT(char* Out,char* In,long datalen,const char* Key,int keylen);
};

#endif//CORE_DES_H



/******************************************************************************
//以下为测试范例

//--- DesTest.cpp ---//

#include "Des.h"
#include "stdio.h"
#include "string.h"
#include "memory.h"

void PrintBinData(char *pack,int len)
{
	static char szBuffer[4096 * 3];
	char *p = szBuffer;

	if(len > 4096 - 1)
		len = 4096 - 1;

	for(int i=0;i<len;i++)
	{
		sprintf(p,"%02x ",(unsigned char)pack[i]);	//写一个字节的二进制数据
		p += 3;
	}
	*p = '\0';						//结束字串,不要漏掉

	printf(szBuffer);
}

void main()
{
	char source[]="Welcome to Http://Bogy.cn.\n";
	char *key="f32,ly6+)df15j3";
	char outbuffer[255];

	memset(outbuffer, 0, sizeof(outbuffer));
	strcpy(outbuffer, source);
	printf("\n加密前:[%s]\n",outbuffer);

	DEC_ENCRYPT(outbuffer, outbuffer, sizeof(source), key, sizeof(key));
	printf("\n加密后:\n");
	PrintBinData(outbuffer,((sizeof(source)+7)/8)*8);
	printf("\n\n");
	PrintBinData(outbuffer,sizeof(outbuffer));
	printf("\n");

	DEC_DECRYPT(outbuffer, outbuffer, sizeof(source), key, sizeof(key));
	printf("\n解密后:[%s]",outbuffer);

	getchar();
}
******************************************************************************/

⌨️ 快捷键说明

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