以安全的格式存储游戏首选项和已保存的游戏

Whi*_*ind 8 security persistence objective-c ios sprite-kit

这是Apple的文档:

当您设计一个向游戏中心报告分数的游戏时,您还应该考虑游戏的安全需求.您希望报告给游戏中心的分数能够准确地计算玩家的行为方式.这有两个建议:

以安全的格式存储游戏的偏好和保存的游戏,而不是以明文形式存储.如果您的游戏数据以明文形式存储,则玩家可以使用iTunes下载保存的游戏数据,进行修改并将其重新同步回设备.这可能允许玩家获得比您预期更高的分数.始终为排行榜设置合理的最小值和最大值.

我知道数据可以存储到.plist文件或.xml或.json中,即使在数据库中也是如此.但所有这些都是非加密的纯文本.什么是安全格式?还有哪些方法/类/技术可用于存储敏感数据?

san*_*ony 7

如果黑客已经确定并具有适当的技能,那么无论存储方法如何,您的存储数据通常都会受到影响.它归结为您的应用程序的实际应用程序以及您愿意为保证数据安全所付出的时间和精力.以下是一些供您考虑的选项:

NSUserDefaults的

存储数据的最常见和最简单的方法之一.数据未加密.

将字符串保存到NSUserDefaults?

Plist文件

也是存储数据的常用方法.数据未加密.

从Plist存储和检索

CoreData

创建模型,管理不同类型对象之间的关系.默认情况下,数据未加密.

http://www.appcoda.com/introduction-to-core-data/

http://www.raywenderlich.com/85578/first-core-data-app-using-swift

钥匙扣

可以说是在非越狱设备上存储数据的最安全方式.数据已加密.

/sf/ask/1152191561/

NSCoding

正如Whirlwind指出的那样,这是另一种存储方法.

http://www.raywenderlich.com/1914/nscoding-tutorial-for-ios-how-to-save-your-app-data

http://nshipster.com/nscoding/

CommonCrypto Apple框架

低级C编码.数据已加密.

https://developer.apple.com/library/ios/documentation/Security/Conceptual/cryptoservices/GeneralPurposeCrypto/GeneralPurposeCrypto.html

https://developer.apple.com/library/ios/samplecode/CryptoExercise/Listings/ReadMe_txt.html

定制方法

将数据存储在云中,从而完全消除它在设备上的影响.使用触摸ID功能对用户进行身份验证并下载云数据.

http://code.tutsplus.com/tutorials/ios-8-integrating-touch-id--cms-21949

https://developer.apple.com/library/ios/samplecode/KeychainTouchID/Introduction/Intro.html