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