我创建了一个加密/解密程序,加密时我将加密的 QByteArray 存储在一个文本文件中。
尝试解密时,我检索了它,然后将其放入解密方法中,问题是我需要一种在 不更改格式 的情况下将其转换为 QByteArray 的方法,否则将无法正确解密。我的意思是,如果文件给了我一个 1234 的加密值,我通过 1234.toLatin1()
将其转换为 QByteArray,它会更改值并且解密不起作用。有什么建议么?
我的代码:
QFile file(filename);
QString encrypted;
QString content;
if (file.open(QIODevice::ReadOnly)) {
QTextStream stream( &file );
content = stream.readAll();
}
encrypted = content.replace("\n", "");
qDebug() << encrypted; // Returns correct encrypted value
QByteArray a;
a += encrypted;
qDebug() << "2 " + a; // Returns different value than previous qDebug()
QByteArray decrypted = crypto.Decrypt(a, key);
return decrypted;
原文由 James 发布,翻译遵循 CC BY-SA 4.0 许可协议
我想你应该使用:
或者:
将 QByteArray 转换为 QString,然后通过 QTextStream 将其写入文件。
之后,通过 QTextStream 读取文件,使用:
将 QString 转换为 QByteArray。
PS:也许使用 QFile::write 和 QFile::read 是更好的方法。