uye*_*tch 3 qt cryptography kde
我正在使用一个使用Qt的软件,并且现有方法以十六进制加密/解密校验和值.目前,我遇到了一些基本64的校验和值.我不知道是否有一种方法可以使用Qt或KDE将base64值转换为十六进制值,而不是重新发明轮子来为base64校验和执行相同的操作.图书馆.这样我就可以避免编写半重复的代码来执行几乎相似的任务.
这是它应该如何工作:
Input: VO2S9pgCq1lqgTFTKssVj6amn0npNdagtjI8ziDtiRQ=
Output: 54ed92f69802ab596a8131532acb158fa6a69f49e935d6a0b6323cce20ed8914
Run Code Online (Sandbox Code Playgroud)
输入包含在QString中.如果在Qt/KDE中没有内置支持,你能建议我用C++编写一个方法吗?
这就是我现在尝试的:
QString b64("VO2S9pgCq1lqgTFTKssVj6amn0npNdagtjI8ziDtiRQ=");
QByteArray ba = QByteArray::fromBase64(b64.toAscii());
QString res(ba.toHex());
qDebug() << res;
Run Code Online (Sandbox Code Playgroud)
可能有更正确的方法,但我现在太困了,抱歉.
作为一个功能:
/// untested
QString base64ToHex(const QString& b64){
QByteArray ba = QByteArray::fromBase64(b64.toAscii());
QString res(ba.toHex());
return res;
}
Run Code Online (Sandbox Code Playgroud)
或者只是..
QString base64ToHex(const QString& b64){
return QString(QByteArray::fromBase64(b64.toAscii()).toHex());
}
Run Code Online (Sandbox Code Playgroud)
编辑1:使用Qt5你应该使用QString::toLatin1()
而不是QString::toAscii()
.