我想在我的iPhone应用程序本地存储数据;在这种情况下,数据将是游戏中的高分。我想将高分存储在应用的属性列表中,但我有一个问题。越狱设备是否能够破解财产清单并改变高分?我不希望人们改变他们的高分,然后将该分数同步到游戏中心。提前谢谢!
答案 0 :(得分:1)
是的,由于越狱提供了对文件系统的访问,因此用户可以轻松更改任何内容。解决此问题的一种方法是使用诸如AES
之类的内容加密分数,或者仅使用校验和来保护数据。
有一个很好的工具可以安全地存储您的数据Secure-NSUserDefaults,Matthias 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
}
只是说。您可以在项目页面上找到更多信息。