📄 multicoder.h
字号:
////////////////////////////////////////////////////////////////////////////////////
//文件名:MultiCoder.h
//功能 :提供多种编码算法支持的库函数头文件说明
// 编码算法有:增强MD5算法、BASE64算法、DES算法、3DES、RSA算法
//日期 :2004-10-24
////////////////////////////////////////////////////////////////////////////////////
#define EN0 0 /* MODE == encrypt */
#define DE1 1 /* MODE == decrypt */
////////////////////////////////////////////////////////////////////////
//函数名: GetDLLVersion
//功能 : 得到本函数库序版本号
//参数 : 无
//返回值: 整型,返回版本号,后两位是子版本号,前面为主版本号
////////////////////////////////////////////////////////////////////////
extern "C" __declspec(dllexport) int GetDLLVersion();
/* ----------------BASE64算法
* 对输入的字节流进行转换映射,编码完后的字节流将全部可以显示(其中字符属于设定的64字符集之一)
*/
////////////////////////////////////////////////////////////////////////////////////
//函数名:DoBASE64
//功能 :对输入字节流进行BASE64编码,得到可显示字符串
//参数 :idata 输入的需要进行BASE64编码的数据(指针)
// idatalen 输入数据idata长度
// :odata 存放经过BASE64编码的输出数据(指针)
// odatalen 输出数据odata长度
// type,加密/解密,整型,=EN0表示加密,DE1表示解密。
//返回值:编码后数据长度
//注意 :加密参数要求:odatalen >= (idatalen * 4 / 3)
// :解密参数要求:odatalen >= (idatalen * 3 / 4);idatalen必须为4的整数倍
////////////////////////////////////////////////////////////////////////////////////
extern "C" __declspec(dllexport) int DoBASE64(const unsigned char *idata, int idatalen, unsigned char *odata, int odatalen,int type);
/* ----------------增强MD5算法。
* 对输入的明文进行摘要提取,最终得到受密码控制的、具有与明文相关特性的、固定长度字符串
*/
////////////////////////////////////////////////////////////////////////////////////
//函数名:MD5_Ex
//功能 :增强MD5算法,可以通过设置密码,控制MD5算法的输出结果
//参数 :data 输入的需要进行MD5处理的数据(指针)
// datalen 数据data长度
// key 密码数据(指针)
// keylen 密码数据长度
// digest 返回的16字节长摘要数据
//返回值:无
////////////////////////////////////////////////////////////////////////////////////
extern "C" __declspec(dllexport) void MD5_Ex(unsigned char *data, int datalen, unsigned char *key, int keylen, unsigned char digest[16]);
/* ----------------DES、3DES算法
* 数字加密算法
*/
////////////////////////////////////////////////////////////////////////
//函数名: DoDes
//功能 : 用DES算对数据进行加密/解密
//参数 : data,数据,字符串,有效长度应为8字节的整数倍,不足8字节,用户自己处理填充。
// datalen,数据长度,整型,应为8的整数倍。
// key,密钥,字符串,固定8字节。
// type,加密/解密,整型,=EN0表示加密,DE1表示解密。
//返回值: 无
////////////////////////////////////////////////////////////////////////
extern "C" __declspec(dllexport) void DoDES(char data[],int datalen,char key[8],int type);
////////////////////////////////////////////////////////////////////////
//函数名: Do3Des
//功能 : 用3DES算对数据进行加密/解密
//参数 : data,数据,字符串,有效长度应为8字节的整数倍,不足8字节,用户自己处理填充。
// datalen,数据长度,整型,应为8的整数倍。
// key,密钥,字符串,固定16字节。
// type,加密/解密,整型,=EN0表示加密,DE1表示解密。
//返回值: 无
////////////////////////////////////////////////////////////////////////
extern "C" __declspec(dllexport) void Do3DES(char data[],int datalen,char key[16],int type);
/* ----------------RSA算法
* 非对称加密算法
*/
#define DATALENGTH 64
#define BYTEPERBLOCK 4
#define SPLITCHAR ' '
///////////////////////////////////////////////////////////////////////////////////
//函数名:DoRSAData
//功能 :对数据进行RSA加密/解密
// 加密--以BYTEPERBLOCK字节为单位进行,如果数据长度不为BYTEPERBLOCK整数倍则后面填充'\0'
// 需要进行加密的数据可以是任何形式表示的数据
// 解密--解密数据必须是数字字符串,不同块之间用SPLITCHAR字符隔开
//参数 :indatabuff 需要加密/解密的数据
// indatalen 需要加密/解密的数据长度
// outdatabuff 加密/解密完毕后的密文/明文数据
// outdatalen 返回加密/解密后的密文/明文数据长度
// key 密钥
// Nvalue N值
// encodeflag 加密EN0/DE1解密标记
//返回值 :0表示成功返回,1密钥非法,2 n值错误,3数据太长
////////////////////////////////////////////////////////////////////////////////////
//注意: 需解密数字字符串长度不能超过DATALENGTH
extern "C" __declspec(dllexport) int DoRSAData(char indatabuff[],int indatalen,char outdatabuff[],int &outdatalen,char key[],char Nvalue[],int encodeflag);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -