gpt4 book ai didi

c++ - Qt C++ QString 到 QByteArray 的转换

转载 作者:IT老高 更新时间:2023-10-28 22:01:45 29 4
gpt4 key购买 nike

我创建了一个加密/解密程序,加密时我将加密的 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;

最佳答案

我猜你应该使用:

QString::fromUtf8(const QByteArray &str)

或者:

QString::QString(const QByteArray &ba)

将QByteArray转为QString,然后通过QTextStream写入文件。
之后,通过 QTextStream 读取文件,使用:

QString::toUtf8()

将 QString 转换为 QByteArray。

QString::QString(const QByteArray &ba)

Constructs a string initialized with the byte array ba. The given byte array is converted to Unicode using fromUtf8().


PS:也许使用 QFile::write 和 QFile::read 是更好的方法。

关于c++ - Qt C++ QString 到 QByteArray 的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37802575/

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