2011-12-16 4 views
1

IOS:メモリデータストアで、私は次のようにiphoneにコアデータとメモリ内のデータストアを作成したい

  • ストアのデータが暗号化されたファイルでディスクに保存されます(最大私は私がしたいお店です。このデータ配列を使用するようにNSPersistentStoreCoordinatorを伝えたいサイズ400キロバイト)
  • 暗号化されたファイルがメモリにcompletlyロードされ、その後、私はメモリ
  • にいくつかのデータ配列を持つように私はそれを解読しますつかいます。
  • コード内のある時点で、最新のメモリデータストアが別のデータアレイにコピーされ、暗号化されてディスクに格納され、ディスク上のデータが常に最新のバージョンのデータに対応します。

データは機密性の高いユーザーデータであり、それは完全なデータベースには絶対に格納できないためです。

私のアプリでは、すでに管理対象オブジェクトの各プロパティが暗号化されているため、ディスクに保存されているsqliteデータベースにはわかりにくい値しか含まれていません。不幸にも、その場で毎回すべての暗号を解読するには遅すぎることが判明しました。

第1オフ:これは可能ですか? 2番目に注意が必要なことがありますか?

+0

また、SQLCipherをiOSに移植することもできます。 Interessting。 –

+0

。しかし、それはコアデータと連携して動作しないと思いますか? – toom

+0

私は分かりません。これはSQLiteのプラグインを置き換えるものですが、何らかの形でコアデータを取り込めるかどうかはわかりません。コアデータを使用したことはありません。 –

答えて

0

これはあなたの助けになるかどうかは分かりませんが、iOS5の永続ストアでは、データが暗号化された形式でディスクに保存されるようになりました。これはiOS4のオプションです。 documentationを参照してください。

iOS 5.0以降用に構築されたアプリケーションの場合、永続ストアはデフォルトでデータを暗号化された形式でディスクに保存するようになりました。デフォルトの保護レベルは、ユーザーが最初にデバイスのロックを解除するまで、データへのアクセスを防ぎます。永続ストアを構成するときは、NSPersistentStoreFileProtectionKeyキーにカスタム値を割り当てることで保護レベルを変更できます。 iOS 5.0の新しいデータ保護の詳細については、「データ保護の改善」を参照してください。

+0

答えをありがとう。しかし、これを理解する限り、データはユーザーが電話機のロックを解除するために使用する4桁のコードによってのみ保護されます。私はこの解決策が私の仕事には不十分だと思います。 – toom

+0

Ok - あなたの正確な要件を知らない私はちょうど私がそこにそれを投げたいと思った。 –

関連する問題