1

我想将数据存储在本地的 iPhone 应用程序中;在这种情况下,数据将是游戏中的高分。我想将高分存储在应用程序的属性列表中,但我有一个顾虑。越狱设备是否能够破解属性列表并更改高分?我不希望人们更改他们的高分,然后将该分数同步到 Game Center。先感谢您!

4

1 回答 1

1

是的,因为越狱提供了对文件系统的访问权限,用户可以轻松更改任何内容。解决这个问题的一种方法是加密分数,使用类似的东西AES,或者只是用校验和来保护数据。

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

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

举个例子(来自项目自述文件,进行了一些修改以适应问题):

// 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
}

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

于 2014-05-09T23:30:24.067 回答