54 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C++
		
	
	
	
| #ifndef __DAKUANG_BASE64_H__
 | ||
| #define __DAKUANG_BASE64_H__
 | ||
| 
 | ||
| #include <string>
 | ||
| 
 | ||
| namespace LenheartBase
 | ||
| {
 | ||
|     class CBASE64
 | ||
|     {
 | ||
|     public:
 | ||
|         // 生成RSA密钥结构
 | ||
|         static void* __genKey(int nBits);
 | ||
| 
 | ||
|         // 生成密钥对,输出为PEM字符串
 | ||
|         static bool genKeyStrings(std::string& strPrivateKeyPEMString, std::string& strPublicKeyPEMString);
 | ||
| 
 | ||
|         // 执行BASE64编码操作
 | ||
|         static std::string encode(const std::string& str);
 | ||
| 
 | ||
|         // 执行BASE64解码操作
 | ||
|         static std::string decode(const std::string& str);
 | ||
| 
 | ||
|         // 执行RSA私匙解密操作
 | ||
|         static std::string RsaPriDecrypt(const std::string& cipher_text, const std::string& pri_key);
 | ||
|         // 执行RSA私匙加密操作
 | ||
|         static std::string RsaPriEncrypt(const std::string& clear_text, const std::string& pri_key);
 | ||
| 
 | ||
|         // 使用PEM私钥字符串加密
 | ||
|         static bool encryptByPrivatePEMString(const std::string& strIn, std::string& strOut, const std::string& strKeyPEMString);
 | ||
| 
 | ||
|         // 使用PEM公钥字符串加密
 | ||
|         static bool encryptByPublicPEMString(const std::string& strIn, std::string& strOut, const std::string& strKeyPEMString);
 | ||
| 
 | ||
|         // 使用PEM公钥字符串解密
 | ||
|         static bool decryptByPublicPEMString(const std::string& strIn, std::string& strOut, const std::string& strKeyPEMString);
 | ||
| 
 | ||
|         // 使用RSA执行加密或解密
 | ||
|         static bool __encryptOrDecrypt(const std::string& strIn, std::string& strOut, const void* pRSA, const void* pFunc, bool bEncrypt);
 | ||
| 
 | ||
|     private:
 | ||
|         // 分组编码
 | ||
|         static int __encode(unsigned char* pDest, const unsigned char* pSrc, size_t nSrcLen);
 | ||
| 
 | ||
|         // 分组解码
 | ||
|         static int __decode(unsigned char* pDest, const unsigned char* pSrc, size_t nSrcLen);
 | ||
| 
 | ||
|     private:
 | ||
|         // 编解码转换表
 | ||
|         static unsigned char s_encTable[];
 | ||
|         static unsigned char s_decTable[];
 | ||
|     };
 | ||
| }
 | ||
| 
 | ||
| #endif |