2017-12-02 172 views
1

我想在钥匙串中存储我的游戏的一些字符串(分数,lastPlayedLevel等)。因为它被认为是最安全的方法。 因为我是钥匙扣概念的新手,所以在理解“非常简单”的事情时遇到了问题。在钥匙串中存储游戏状态和分数

我用SAMKeychain包装,我想设置lastPlayedLevel字符串如下

[SAMKeychain setPassword:@"25" forService:[[NSBundle mainBundle] bundleIdentifier] account:@"lastPlayedLevel"]; 

它是一个正确的做法?我不确定“帐户”部分。我希望在用户的所有设备上同步“lastPlayedLevel”。我必须写一个用户特定的字符串吗?

+2

*游戏成绩和状态*并非真正有资格存储在钥匙串中。 iOS默认情况下非常安全。将这种信息保存到'UserDefaults',一个自定义属性列表文件或核心数据。 – vadian

+0

我没有明白为什么他们不符合钥匙链的要求。有很多帖子说UserDefaults不安全放置敏感信息。例如,在我的游戏“分数”中确定游戏的很多方面,所以我不希望任何人访问和修改它。我对定制的plist文件和核心数据了解不多,它们是否安全?此外,通过钥匙串,可以跨多个平台同步这些信息。 – iloalo

回答

1

把比分和比赛状态的钥匙串是矫枉过正恕我直言。你需要做的只是将它们存储在NSUserDefaults中,但在存储它之前将数据编码为二进制文件,这样任何打开你的NSUSerDefaults文件的人都不会立即查看/编辑它。如果你想要更多的保密性,那么在编码为二进制之前先将值编码(例如char xor或其他)。