📄 arithzxz.h.bak
字号:
/////////////////////////////////////////////////////////////////////////////
//Discription: 压缩和加密公共函数
//Written By: ZHANGXIANZHU
//Date: 2001-09-12
//Version: 1.0
//Modified by:
//Modified Date:
//Version:
//
////////////////////////////////////////////////////////////////////////////
#ifndef _VCZXZ_H__
#define _VCZXZ_H__
/////////////////////////////////////////////////////////////////////////////
//名称: GetKey
//功能: 生成DES加密KEY
//算法: 字符串sz初始为 0x0000000000000000
// 循环n次sz对sz做DES加密
//参数: n: 循环次数
//返回: 8字节Key值
//
//
/////////////////////////////////////////////////////////////////////////////
unsigned char * GeyKey(int n);
/////////////////////////////////////////////////////////////////////////////
//名称: DES
//功能: 做DES加解密
//参数: source: 原字符串(8字节)
// dest: 目的字符串(8字节)
// key: 加解密钥匙(8字节)
// flag: 'E'或'e' 时加密
// 'D'或'd' 时解密
//返回:
//
//
/////////////////////////////////////////////////////////////////////////////
void Des(unsigned char *source, unsigned char *dest,
unsigned char *key, unsigned char flag);
/////////////////////////////////////////////////////////////////////////////
//名称: DesMac
//功能: 用DES做MAC校验
//算法: 每8位循环异或,DES,异或, 不够8位时用0x00填充
//参数: source: 原字符串
// iLen: 原字符串长度
// dest: 目的字符串(8字节)
// key: 加密钥匙(8字节)
//返回:
//
//
/////////////////////////////////////////////////////////////////////////////
void DesMac(unsigned char *source, int iLen,
unsigned char *dest, unsigned char *key);
/////////////////////////////////////////////////////////////////////////////
//名称: Do_XOR
//功能: 异或操作,目的字符串 = 目的字符串和原字符串的异或
//参数: dest: 目的字符串
// source: 原字符串
// size: 长度
//返回:
//
//
/////////////////////////////////////////////////////////////////////////////
void Do_XOR(unsigned char *dest, unsigned char *source, int size);
/////////////////////////////////////////////////////////////////////////////
//名称: HEX_2_DSP
//功能: 把BCD码串变成数字串(十六进制)
//参数: hex: 原字符串
// dsp: 目的字符串
// count: 原字符串长度
//返回:
//
//
/////////////////////////////////////////////////////////////////////////////
void HEX_2_DSP(unsigned char *hex, unsigned char *dsp, int count);
/////////////////////////////////////////////////////////////////////////////
//名称: DSP_2_HEX
//功能: 把十六进制字符串变成BCD码
//参数: dsp: 原字符串
// hex: 目的字符串
// count: 原字符串长度/2=目的字符串长度
//返回:
//
//
/////////////////////////////////////////////////////////////////////////////
void DSP_2_HEX(unsigned char *dsp, unsigned char *hex, int count);
/////////////////////////////////////////////////////////////////////////////
//名称: alder32
//功能: 32位校验和
//参数: adler: 输入校验和
// buf: 字符串
// len: 字符串长度
//返回: 校验和值
//
//
/////////////////////////////////////////////////////////////////////////////
unsigned long adler32(unsigned long adler, const BYTE *buf, unsigned int len);
/////////////////////////////////////////////////////////////////////////////
//名称: compress
//功能: 压缩字符串,采用zlib、deflate格式压缩
//算法: RFC1950 (zlib format)
// RFC1951 (deflate format)
//参数: dest: 目的字符串
// destLen:目的字符串长度,应输入目的字符串最大长度
// 压缩成功返回时,是压缩结果长度
// source: 原字符串
// sourceLen: 原字符串长度
//返回: 成功=0
// 失败 <0
// -4: 内存不够
// -5: destLen 太小,调用时destlen要指出dest的长度
/////////////////////////////////////////////////////////////////////////////
int compress (BYTE *dest, unsigned long *destLen, const BYTE *source, unsigned long sourceLen);
/////////////////////////////////////////////////////////////////////////////
//名称: uncompress
//功能: 解压缩字符串,采用zlib、deflate格式压缩
//算法: RFC1950 (zlib format)
// RFC1951 (deflate format)
//参数: dest: 目的字符串
// destLen:目的字符串长度,应输入目的字符串最大长度
// 解压缩成功返回时,是解压缩结果长度
// source: 原字符串
// sourceLen: 原字符串长度
//返回: 成功=0
// 失败 <0
// -4: 内存不够
// -5: destLen 太小,调用时destlen要指出dest的长度
/////////////////////////////////////////////////////////////////////////////
int uncompress (BYTE *dest, unsigned long *destLen, const BYTE *source, unsigned long sourceLen);
/////////////////////////////////////////////////////////////////////////////
//名称: CRC16
//功能: 16位CRC校验
//参数: szBuf: 字符串
// iLen: 字符串长度
//返回: CRC16值
//
//
//
/////////////////////////////////////////////////////////////////////////////
WORD CRC16(BYTE *szBuf, int iLen);
/////////////////////////////////////////////////////////////////////////////
//名称: CRC32
//功能: 32位CRC校验
//参数: szBuf: 字符串
// iLen: 字符串长度
//返回: CRC32值
//
//
//
/////////////////////////////////////////////////////////////////////////////
DWORD CRC32(BYTE *buf, int iLen);
/////////////////////////////////////////////////////////////////////////////
//名称: KMPSearchMem
//功能: KMP匹配算法
//参数: dad: 主字符串
// ndad: 主字符串长度
// sub: 匹配字符串
// nsub: 匹配字符串长度(应<=512)
//返回: 第一个匹配位置, 不匹配为-1
//
//
/////////////////////////////////////////////////////////////////////////////
int KMPSearchMem(char *dad, int ndad, char *sub, int nsub);
/////////////////////////////////////////////////////////////////////////////
//名称: CheckExeFile
//功能: 检查执行文件是否被其他程序修改
//参数: szFileName: 文件名
// szMutex: 互斥变量名,为NULL时,执行文件不产生互斥,
// 不为NULL时,执行文件只能有一个运行程序。
//返回: 0 正常
// <0 不正常
//
//
/////////////////////////////////////////////////////////////////////////////
int CheckExeFile(char *szFileName, char *szMutex);
#endif /*_VCZXZ_H__*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -