1

iPhone アプリのデータをローカルに保存したい。この場合、データはゲームのハイスコアになります。ハイスコ​​アをアプリの物件リストに保存したいのですが不安です。ジェイルブレイクされたデバイスは、プロパティ リストをハッキングして、ハイ スコアを変更できますか? ハイ スコアを変更してから、そのスコアを Game Center に同期させたくありません。前もって感謝します!

4

1 に答える 1

1

はい、ジェイルブレイクはファイルシステムへのアクセスを提供するため、ユーザーは何でも簡単に変更できます。この問題を解決する 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
}

言うだけです。プロジェクトページで詳細を確認できます。

于 2014-05-09T23:30:24.067 に答える