本项目是实现RSA加密算法,将以.hpp的形式,提供文档加密/解密,消息加密/解密。
由于是.hpp形式,使用简单,只用include就可以使用
完全开源,方便优化
接口简单,易使用
使用了boost大数运算,几乎无法被解密
项目是在VS2017开发,由于项目使用了boost库,所以需要引入boost库
直接clone《RSA加密算法》,即可得到.hpp,在项目中包含本.hpp,在本库中clone与当前项目匹配的boost1_58版本,引入boost库后就可以使用。
可以直接只用其中的消息接口实现HTTP等加密,也可使用其文件加密,为自己的机密文件加密,注意保存好钥匙
下面是测试代码。有兴趣可以跑跑。
void StringTest()
{
RSA rsa;
std::string test;
std::string rec;
std::vector<bm::int1024_t> res;
std::cout << "请输入信息:";
std::cin >> test;
res = rsa.Ecrept(test, rsa.GetKey().ekey, rsa.GetKey().nkey);
std::cout << "密文:";
rsa.PrintInfo(res);
rec = rsa.Decrept(res, rsa.GetKey().dkey, rsa.GetKey().nkey);
std::cout << "解密:";
std::cout << rec << std::endl;
}
void FileTest()
{
RSA rsa;
std::string filenameIn, fileecreptOut, filedcreptOut;
filenameIn = "file.jpg";//加密文件必须存在哦
fileecreptOut += "ecrept.txt";
filedcreptOut += "dcrept.jpg";
rsa.FileEcrept(filenameIn.c_str(), fileecreptOut.c_str(), rsa.GetKey().ekey, rsa.GetKey().nkey);
rsa.FileDecrept(fileecreptOut.c_str(), filedcreptOut.c_str(), rsa.GetKey().dkey, rsa.GetKey().nkey);
}