forked from cool2528/baiduCDP
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CEncryption.h
81 lines (79 loc) · 2.03 KB
/
CEncryption.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#ifndef __CENCRYTPION__H
#define __CENCRYTPION__H
#include <windows.h>
#include <string>
namespace aip {
std::string base64_encode(const char * bytes_to_encode, unsigned int in_len);
std::string base64_decode(std::string const & encoded_string);
}
typedef enum {
GENERAL = 0,
ECB,
CBC,
CFB,
OFB,
TRIPLE_ECB,
TRIPLE_CBC
}CRYPTO_MODE;
class CCEncryption
{
public:
CCEncryption();
~CCEncryption();
/////////////////////////////////////////////////////////
/* MD5加密函数 */
/////////////////////////////////////////////////////////
/*
@返回字符串的MD5值
*/
static std::string MD5_Str(const std::string strData);
/*
@返回内存数据的MD5值
*/
static std::string Md5_Memory(PVOID pBuffer, DWORD dwlens);
/*
@ 根据文件路径读取文件返回文件的MD5值
*/
static std::string Md5_Files(const std::string strFiles);
/////////////////////////////////////////////////////////
/* DES加解密函数 */
/////////////////////////////////////////////////////////
/*
@ DES加密
@ cleartext 被加解密文本
@ key 密匙串
@ mode 加解密方式
*/
static std::string DES_Encrypt(const std::string cleartext, const std::string key, CRYPTO_MODE mode);
/*
@ DES解密
@ ciphertext 被加解密文本
@ key 密匙串
@ mode 加解密方式
*/
static std::string DES_Decrypt(const std::string ciphertext, const std::string key, CRYPTO_MODE mode);
/////////////////////////////////////////////////////////
/* AES加解密函数 */
/////////////////////////////////////////////////////////
/*
@ AES加密函数
@ strKey 加密用的密匙
@ strData 被加密的数据
@ mode 加密的方式
*/
static std::string AES_Encrypt(const std::string strKey, const std::string strData);
/*
@ AES解密函数
@ strKey 解密用的密匙
@ strData 被解密的数据
@ mode 解密的方式
*/
static std::string AES_Decrypt(const std::string strKey, const std::string strData);
static std::string Gbk_To_Utf8(const char* szBuff);
private:
#define MD5_LENS 16
static BYTE cbc_iv[8];
static std::string HexToStr(PBYTE pBuffer, DWORD dwLens);
static std::string StrToHex(const std::string strBuffer);
};
#endif