在钥匙串中存储游戏状态和分数

Storing game states and scores in keychain

我正在尝试将游戏的一些字符串(分数、上次播放级别等)存储在钥匙串中。因为据说这是最安全的方法。 由于我是钥匙串概念的新手,所以我可能无法理解 "very simple" 事物。

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

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

这是正确的做法吗?我不确定 "account" 部分。我希望 "lastPlayedLevel" 在用户的所有设备上同步。我是否必须改为编写用户特定的字符串?

恕我直言,将分数和游戏状态放在钥匙串中有点矫枉过正。您需要做的只是将它们存储在 NSUserDefaults 中,但在存储之前将您的数据编码为二进制文件,这样任何打开您的 NSUSerDefaults 文件的人都无法立即 view/edit 它。如果你想要更多的保密性,那么在编码为二进制之前先对值进行编码(例如 char xor 或其他)。