保護の程度に応じて、データを保護する方法はたくさんあります。カジュアルなハッカーだけからの保護を最小限に抑えるために、文字列難読化アルゴリズムを使用して、HTMLコンテンツをNSString
sとして難読化および難読化解除することができます。これを行う例を次に示します。私はその特定のコードを使用していませんが、データが実際にそれほど機密性が高くない場合を除いて、テクニックとして難読化を実際に推奨していません。
より良い解決策は、HTMLコンテンツを暗号化することですが、それはより多くの作業であり、現在の場所やアプリの配布場所によっては、エクスポート制御の問題が発生する可能性があります。
暗号化には、多くのオプションがあります。
1) これはのようなものの安全なバージョンを提供するオープンソースの実装ですNSUserDefaults
。registerDefaults:
ただし、そのコードに相当するものは表示されないため、アプリを初めて実行するときに、Webからコンテンツをダウンロードする必要がある可能性があります。PDKeychainBindings
ただし、暗号化して文字列値として保存することもできます。その後の実行では、次のように保存されたHTML 「ファイル」を抽出できます。
NSString* webPageContent =
[[PDKeychainBindings sharedKeychainBindings] valueForKey: @"index.html"];
2)AES暗号化ラッパーを提供する別のオープンソースプロジェクトがあります。アプリをリリースする前に、非実稼働コードを記述して、HTMLコンテンツをバンドルリソースとなる暗号化されたデータファイルに暗号化します。アプリが実行されると、ファイルが開かれ、を介してNSString
提供できるオブジェクトに復号化されます。UIWebView
loadHTMLString: baseURL:
3)最後に、基盤となるCommonCryptoAPIを使用してバンドルリソースを保護する別の例を示します。この例では、カスタムビルドステップを使用して、特定のフォルダー内のリソースを自動的に暗号化します。これにより、保護されたHTMLコンテンツがかなり頻繁に変更される場合に時間を節約できます。