gpt4 book ai didi

qt - 如何使用 Qt/KDE 将 base64 值转换为十六进制值?

转载 作者:行者123 更新时间:2023-12-04 13:19:47 26 4
gpt4 key购买 nike

我正在开发一个使用 Qt 的软件,并且有现有的方法来加密/解密十六进制的校验和值。目前,我遇到了一些以 64 为基数的校验和值。我想知道是否有一种方法可以使用 Qt 或 KDE 将 base64 值转换为十六进制值,而不是重新发明轮子为 base64 校验和做同样的事情库。这样我就可以避免编写半重复代码来完成几乎相似的任务。

它应该是这样工作的:

Input: VO2S9pgCq1lqgTFTKssVj6amn0npNdagtjI8ziDtiRQ=
Output: 54ed92f69802ab596a8131532acb158fa6a69f49e935d6a0b6323cce20ed8914

输入包含在 QString 中。此外,如果 Qt/KDE 中没有内置支持,您能否建议我使用 C++ 中的方法?

最佳答案

这是我现在尝试的:

 QString b64("VO2S9pgCq1lqgTFTKssVj6amn0npNdagtjI8ziDtiRQ=");
QByteArray ba = QByteArray::fromBase64(b64.toAscii());

QString res(ba.toHex());

qDebug() << res;

可能有更正确的方法,但我现在太困了,抱歉。

作为函数:

 /// untested
QString base64ToHex(const QString& b64){
QByteArray ba = QByteArray::fromBase64(b64.toAscii());
QString res(ba.toHex());

return res;
}

或者简单的..

 QString base64ToHex(const QString& b64){
return QString(QByteArray::fromBase64(b64.toAscii()).toHex());
}

编辑 1:对于 Qt5,您应该使用 QString::toLatin1() 而不是 QString::toAscii()

关于qt - 如何使用 Qt/KDE 将 base64 值转换为十六进制值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11289074/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com