Qt C++-如何保护文件



我的应用程序生成一个包含重要文件的.zip,我不希望最终用户能够访问这些数据。要压缩,我使用QuaZIP库。

我的第一个想法是为zip文件设置一个密码,但它看起来很复杂,也不太安全,但如果你有一个解决方案,它就足以满足我的需要。

否则,你有什么想法可以轻松地保护文件吗?我可以加密它吗?

非常感谢。我是Qt 5.11和MSVC2017。

最简单的保护:只需更改文件扩展名(例如,从.zip更改为.bin(。例如,使用QFile::rename((:

QFile::rename("your_file.zip", "your_file.bin");

另一种方法:
从文件中读取所有数据并加密。您可以使用SimpleCrypt:

SimpleCrypt crypto(Q_UINT64_C(0x0c2ad4a4acb9f023)); //some random number. This is your encryption key
...
QByteArray buffer = file.readAll();
QByteArray encryptedBuffer = crypto.encryptToByteArray(buffer.data());
// Write the encrypted data to a new file
QFile newFile("new_file.bin");
...
newFile.write(encryptedBuffer);

然后您可以发送此newFile

在接收方,将收到的文件中的所有数据读取到buffer中:

QByteArray encryptedBuffer = receivedFile.readAll();
SimpleCrypt crypto(Q_UINT64_C(0x0c2ad4a4acb9f023)); //same random number: key should match encryption key
QByteArray yourDecryptedData = crypto.decryptToByteArray(encryptedBuffer);

最新更新