这是苹果的文档:
当您设计一个向游戏中心报告分数的游戏时,您还应该考虑您的游戏的安全需求。你想要向游戏中心报告分数,以便准确地记录玩家的表现。以下是两项建议: 将您的游戏首选项和保存的游戏以安全的格式存储,而不是以明文形式存储。如果您的游戏数据以明文形式存储,玩家可以使用iTunes下载保存的游戏数据,对其进行修改,并将其重新生成回设备。这可能会让玩家获得比你预期的更高的分数。始终为主板设置合理的最小值和最大值。
我知道数据可以存储到.plist文件、.xml或.json中,甚至可以存储在数据库中。但所有这些都是未经加密的纯文本。什么是安全格式?还有哪些方法/类/技术可以用来存储敏感数据?
发布于 2015-02-08 14:54:56
如果黑客有足够的决心并拥有适当的技能集,则无论采用何种存储方法,您存储的数据通常都会受到破坏。它归结为您的应用程序的现实世界的应用程序和你愿意投入的时间和努力,以确保数据安全。下面是一些供你考虑的选项:
NSUserDefaults
存储数据的最常见和最简单的方法之一。数据未加密。
Plist文件
也是存储数据的一种常见方式。数据未加密。
CoreData
创建模型,管理不同类型对象之间的关系。默认情况下,数据不加密。
http://www.appcoda.com/introduction-to-core-data/
http://www.raywenderlich.com/85578/first-core-data-app-using-swift
密钥链
可以说是在非越狱设备上存储数据的最安全的方法。数据是加密的。
https://stackoverflow.com/questions/16459879/how-to-store-a-string-in-keychain-ios
NSCoding
正如旋风指出的那样,这是另一种存储方法。
http://www.raywenderlich.com/1914/nscoding-tutorial-for-ios-how-to-save-your-app-data
http://nshipster.com/nscoding/
CommonCrypto苹果框架
低级别C编码。数据是加密的。
自定义接近
将数据存储在云中,从而消除了将数据完全放在设备上的问题。使用touch ID特性对用户进行身份验证并下载云数据。
http://code.tutsplus.com/tutorials/ios-8-integrating-touch-id--cms-21949
https://developer.apple.com/library/ios/samplecode/KeychainTouchID/Introduction/Intro.html
发布于 2015-02-07 23:37:41
存储数据的最安全的地方是在键链中,但是如果用户使用的是越狱设备,它仍然不是100%安全的。遵循苹果公司关于设置领导板最小值和最大值的指导方针。
这是另一个这样的帖子描述了如何将信息以NSData
的形式存储在NSDictionary
中,然后应用程序对其进行加密和解密。
https://stackoverflow.com/questions/27566483
复制相似问题