我的细节是关于小(至少1 KB)的数据 例如,我有游戏统计数据(高分,所有其他统计数据,游戏,赢了,...),我需要保存它,但我不希望该用户可以编辑(破解)该数据。
这是我到目前为止的工作流程:
(会有一些代码,因为我觉得代码是最好的解释)
GameStatistic
对象,即单身。NSData* encodedData = [NSKeyedArchiver archivedDataWithRootObject: self]
[encodedData writeToFile:[GTN_GameStatistics filePath] atomically:YES];
NSString* checksum = [KeychainWrapper computeSHA256DigestForData: encodedData];
checksum
保存在KeyChain
所以基本上我使用SHA256
中保存的KeyChain
校验和作为解决方法来解决问题。
我可以以某种方式改善它吗?
我从未使用过核心数据,但我知道它有某种加密方式 使用核心数据加密或我目前的解决方案更好吗?
更新
NSUserDefault无法回答。
NSUserDefault基本上只是Library / Preferences中的plist文件
所以任何人都可以改变它,例如用户可以使用iFunBox,并改变一切。
我熟悉NSUserDefault,我只是将它用于我不在乎的数据,如果用户要在我的应用程序之外更改它。
喜欢将游戏声音设置为ON或OFF。