说一下写这篇文章的用意吧。我们工作中多多少少都会用到加密解密这一块的技能。通用的cryptopp库openssl库使我们必备的神器。当然他们的使用方法也是五花八门。今天我们的主角是openssl。下面我外链一篇正规的使用方法吧。https://blog.csdn.net/xqhrs232/article/details/82498344 这篇文章囊括了QT如何使用openssl的基本加密解密的调用方法。但是经过你一顿猛如虎的操作之后,加密解密也ok了。但是你把你的加解密结果跟其他语种的加解密结果一对照。交叉加解密之后发现。Qt框架下的加密结果在其他语种java为例框架下。解密不了。百思不得其解。猛如虎瞬间二百五了吧。别急。我们这篇文章就是为了解决这个问题来的。
openssl - RSA 加解密的方法就那么几行代码了。完全找不到突破口。无奈之下本人用openssl提供的openssl.exe 直接用命令行去验证rsa加解密结果。跟java语种进行交叉加解密后,完全符合要求。可是说了这么多哪里来的投机取的哪门子的巧呢?笑死人吧。
QProcess p(nullptr);
p.start("openssl rsautl -encrypt -in token.txt -inkey pub.key -pubin -out acesstoken");
p.waitForStarted();
p.waitForFinished();
QString optput =QString::fromLocal8Bit(p.readAllStandardOutput());
QFile file("acesstoken"); //构造一个QFile对象
if(file.open(QIODevice::ReadOnly)) //以只读方式打开
{
QByteArray bsa = file.readAll(); //以行为单位进行读取
file.close();
return bsa.toBase64();
}
else
{
file.close();
return "";
}
token.txt :要加密的文本
pub.key : 公钥文本
acesstoken :加密后的文本是一套乱码文本
bsa.toBase64(); base64编码之后看上去就是相对正常的密文咯、
这样子用是不是有种人民币玩家的感觉 ,加密如此,解密亦如斯。openssl 怎么下载怎么安装就不用交了。能搜索到这篇文章也是懒人的缘分呐。