如何使用 Qt 加密/解密文件内容?

Posted

技术标签:

【中文标题】如何使用 Qt 加密/解密文件内容?【英文标题】:How to encrypt/decrypt file contents using Qt? 【发布时间】:2010-10-20 10:48:22 【问题描述】:

这个问题已经被别人问过很多次了,但不知怎么的答案让我更加困惑。

在我的 Qt 应用程序(用于 symbian 设备)中,我有一个包含用户详细信息(电子邮件 ID 和密码)的文件,我存储在目标设备中,因此希望在文件中加密此数据以确保其安全。我不需要超级安全的加密技术,只要任何温和的技术都可以。如何使用 Qt 做到这一点?

我下载了 QCA 并尝试安装,但在验证 Qt 4 构建环境时失败。原因:找不到 Qt 4 的 qmake 工具。(我已将 QTDIR 设置为已安装的 qt 路径)

有人可以指导我正确的安装步骤、示例或 QCA 的替代方法吗? (或者甚至 Symbian 加密 API 也可以)

谢谢

【问题讨论】:

【参考方案1】:

您还可以使用操作系统提供的数据笼并将文件存储在应用程序的私有目录中。您可以通过QApplication::applicationDirPath() 获取其位置。

对于 Qt 应用程序中的加密,我通常使用普通的旧 openssl C 库。它也可以在 Symbian 设备上使用。

【讨论】:

applicationDirPath 是可执行文件所在的目录,通常用户不可写。对于存储设置,有 QSettings,但它不进行加密(当然可以存储带有加密内容的键/值对)。 @Frank:在 Symbian 上,applicationDirPath() 是应用程序的私有目录,即应用程序安装驱动器上的 \private\<uid>。它被具有该 UID 的进程读写,但没有AllFiles 能力的其他进程无法访问。 除非您将安装限制在内部驱动器上,否则不要单独依赖数据存储 - 安装到存储卡上非常可行,然后将卡放入 PC。没有什么可以阻止您访问 \private 文件并在您的 PC 上分析它们。

以上是关于如何使用 Qt 加密/解密文件内容?的主要内容,如果未能解决你的问题,请参考以下文章

如何用C语言对文件进行加密和解密?急求......................

系统重装之后加密文件夹如何解密?

Linux下文件加密解密简单版(支持压缩加密解密)

电脑文件夹加密后无法解密

如何使用Base64进行加密和解密

如何通过公钥加密文件