【发布时间】:2016-10-14 15:05:40
【问题描述】:
我创建了一个加密/解密程序,加密时我将加密的 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;
【问题讨论】:
-
你是如何将 QByteArray 写入文本文件的?使用 QTextStream 还是只使用 QFile::write?
-
@Daniel QTextStream
标签: c++ qt qstring qbytearray