我的应用程序生成一个包含重要文件的.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);