qt4 - 是否可以在 Qt 应用程序中编辑嵌入式资源?

标签 qt4 embedded-resource

我正在使用 Qt 资源系统来存储 GUI 中使用的图像和数据库的加密密码。我想存储密码并让用户更改它们。应用程序应该能够记住密码。所以我想在应用程序本身中存储新创建的加密密码(与嵌入资源的方式相同)。

目前我在编译时将密码文件保存在应用程序资源中。并且编译后密码是不可更改的。

最佳答案

你试图做的是非常糟糕的风格。应用程序永远不需要修改自己的可执行文件。在管理良好的系统中,应用程序的用户无论如何都无法写入安装目录。使用 QSettings,这就是它的用途。如果您确实希望这样做,您可以将其存储在 .ini 文件而不是注册表中。

请确保您使用的密码是一种单向函数——一种加密强度高的散列,不是加密。根据定义,加密是双向的:您可以加密,然后解密。如果您认为自己是专业人士,您永远不会想将加密一词与单向函数(散列)互换使用。它们是截然不同的事情,你会而且应该被责骂——我怎么知道你的真正意思,无论你只是对你的语言不满意,还是提出了一些本质上不安全的事情。

有了密码,您永远不会想要允许解密。如果有人提供密码来检查,你加密,然后比较加密版本。这样就很难恢复原始密码(可能是 H.R. 的 Vinnie 用于她的 Facebook 帐户和老板的公司银行帐户)。确保对哈希进行加盐以防止彩虹表攻击。您可能应该确保自己知道自己在做什么:在该领域进行 self 教育。没有人是天生的。让我们避免另一种自制的不安全密码方案……它们太多了,由那些认为在对主题一无所知的情况下,他们会以某种方式产生相当安全的应用程序的人完成的。现实,唉,不能在这里被愚弄,不知道通常意味着有人确实知道最终会查看您的代码(也许对其进行逆向工程),并 mock 它...结束咆哮。

关于qt4 - 是否可以在 Qt 应用程序中编辑嵌入式资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9819130/

相关文章:

python - 为什么 SLOT ('insertColumn()' ) 在 PyQt 绑定(bind)中失败?

qt - 使用 Qt4 调用 REST 服务

c++ - Qt C++ WebKit windowCloseRequested 信号

c++ - qt中如何在窗体之间传递数据

java - 生成的 .jar 无法加载某些媒体文件

图像不显示 - xamarin 嵌入资源图像数据无效 : Xamarin. Forms.StreamImageSource

C# 相当于 getClassLoader().getResourceAsStream(...)

作为嵌入式资源的 C# View 在构建后始终显示旧 View

delphi - 正确地将资源包含到 Delphi 包中

c++ - Qt安装报错