Rindro-Plugins/Include/BASE64.h

54 lines
1.8 KiB
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#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