?? 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 + -