2017-12-02 171 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或其他)。