在iOS上安全存储数据

时间:2014-05-09 23:14:06

标签: ios property-list

我想在我的iPhone应用程序本地存储数据;在这种情况下,数据将是游戏中的高分。我想将高分存储在应用的属性列表中,但我有一个问题。越狱设备是否能够破解财产清单并改变高分?我不希望人们改变他们的高分,然后将该分数同步到游戏中心。提前谢谢!

1 个答案:

答案 0 :(得分:1)

是的,由于越狱提供了对文件系统的访问,因此用户可以轻松更改任何内容。解决此问题的一种方法是使用诸如AES之类的内容加密分数,或者仅使用校验和来保护数据。

有一个很好的工具可以安全地存储您的数据Secure-NSUserDefaultsMatthias Plappert,一个将数据保存在NSUserDefaults内的库(我想应该可以保存)高分)禁止用户编辑它。

它不会加密数据,但它应该足以获得高分。

作为一个例子(来自README项目,通过一些编辑来适应问题):

// Configuring user defaults. It is recommended that you do this
// immediately after the app did launch.
[NSUserDefaults setSecret:@"My Game Secret Key"];

// Write secure user defaults
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setSecureInteger:4000 forKey:@"HighScore"];

// Read secure user defaults
BOOL valid = NO;
BOOL registered = [defaults secureBoolForKey:@"HighScore" valid:&valid];
if (!valid) {
    // the property has been modified, handle this situation
} else {
    // Valid property, do whatever you need to do
}

只是说。您可以在项目页面上找到更多信息。