android - 在移动设备(iOS + Android)上签署和验证配置文件

标签 android ios mobile

我们有一个应用程序在本地存储一些数据,除了用户和我们之外,这些数据对任何其他人都没有值(value)。因此,我们不需要对其进行加密,但我们确实希望确保没有人更改过它。

我认为最简单的方法是根据文件内容、日期戳和/或大小生成哈希。直接执行 md5 可能不够好,因为谁想要更改数据就可以生成一个新的散列,所以使用某种 key 会很好。有谁知道一个简单的方法来做到这一点?我想避免使用诸如 crypto++ 之类的库,但不是 100% 反对它。

哦,我们正在用 C++ 开发应用程序。

也许,我只需要向我们传递给 md5 函数的任何内容添加一些晦涩的数据并完成此操作。大家怎么看?

重申一下,文件对黑客来说没有任何有值(value)的信息,因此没有理由过分重视安全性。我只是想检查设置是否被弄乱了。

谢谢, 安格里斯。

PS> 有没有人知道实现 md5 的好方法,两者都适用?

最佳答案

如果要对数据进行签名,则需要使用 key 和签名算法。要么是像 RSA 这样的非对称的,要么是像 AES 这样的对称的。但是,如果您的应用需要使用它来签署数据,则需要嵌入 key 或以其他方式提供给应用。在这种情况下,潜在的攻击者可以从应用程序中提取它并创建他们自己的有效签名。您可以决定您是否愿意,以及您想在保护它方面走多远。

添加“模糊数据”或以其他方式尝试提出您自己的算法不是一个好主意,您一定会弄错,尤其是如果您没有该领域的经验。请务必使用标准算法,并考虑如何保护 key (使用 iOS key 链等)。搜索“RSA sigantures”或“HMAC”以获取有关如何在实践中执行此操作的更多详细信息。如果您无法从您的 C++ 库(?)中利用该平台的加密 API,您将需要使用并链接到第三方库,例如 OpenSSL。

关于android - 在移动设备(iOS + Android)上签署和验证配置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12683128/

相关文章:

ios - 向 AlertView 发送参数

iOS 自动布局 - 如何在旋转时拥有一个粘性 subview (如 native 相机应用程序)?

java - 小型文件的音频缓存Android Studio

java - 创建用户时解析崩溃

javascript - YouTube iFrame API 视频在移动设备上间歇性播放

java - Datasnapshot.getValue.tostring() 没有填充我的字符串变量

android - 当 Recyclerview 中的 Edittext 滚出屏幕时隐藏键盘

Android:在运行时启用/禁用按钮?

android - 使用 PINPAD 在读卡器上验证比利时 EID 卡的 PIN 码

iphone - UICollectionView 奇怪的滚动问题