在跨平台环境中是不是有必要的安全方式在 QSettings 中存储数据?

Posted

技术标签:

【中文标题】在跨平台环境中是不是有必要的安全方式在 QSettings 中存储数据?【英文标题】:Is there a required safe way of storing data in QSettings in a cross platform environment?在跨平台环境中是否有必要的安全方式在 QSettings 中存储数据? 【发布时间】:2011-04-08 09:55:00 【问题描述】:

我的应用程序的 mac 版本刚刚开始破坏我使用 QSettings 保存和恢复的全屏和正常布局。甚至我的应用程序的旧版本现在也正在为我的客户使用。

当我发现一个包含有趣行的错误报告时,我只是在谷歌上搜索类似的东西:

QSettings s;
restoreState(s.value(QString::fromLocal8Bit("state")).toByteArray());

当保存到计算机的 plist 或 windows 注册表时,我必须在 fromLocal8bit() 中格式化数据吗?

http://bugreports.qt-project.org/browse/QTBUG-8631http://bugreports.qt-project.org/secure/attachment/13400/main.cpp

【问题讨论】:

【参考方案1】:

它是被编码的数据,它只是字面的“状态”。如果您使用 QByteArray 或 QString,这些值会被正确编码和解码 . QString::fromLocal8Bit() 部分用于将源文件中的字符串文字转换为 unicode 字符串。在源文件中坚持使用 ASCII 是一种很好的做法,因为 UTF-8 等其他编码通常不适用于所有编译器,尤其是 MSVC。

要将文字转换为 QString,我建议使用 QLatin1String:

QLatin1String("state")

fromLocal8Bit() 严格来说是错误的,因为本地 8 位编码与文字来源的源文件编码无关。 但由于“状态”不包含任何非 ascii 字符,所以无论如何都应该无关紧要。

【讨论】:

以上是关于在跨平台环境中是不是有必要的安全方式在 QSettings 中存储数据?的主要内容,如果未能解决你的问题,请参考以下文章

会vba有必要学vsto吗

Office 365 安全和合规性管理平台为企业数据安全管理保驾护航

Xam 表单中的 ModernHttpClient。在最新版本中是不是有必要?

Kubernetes平台上更安全的构建容器镜像工具-Kaniko

强化学习 常用平台

在我们的工作中协同软件是不是必要,都有哪些协同软件比较好的?