0

ダウンロードしたすべての*.pdfファイルをキャッシュに保存するiOSアプリケーションがあります。このデータが抽出されないようにする方法はありますか?暗号化か何か他のもの?前もって感謝します。

4

4 に答える 4

2

ファイルを暗号化する方法はたくさんありますが、誰もがそれを行うための最良の方法について意見を持っていると確信しています。

私が最近取り組んでいるプロジェクトでは、CommonCrypto(https://github.com/AlanQuatermain/aqtoolkit)を使用しています。NSDataを取得して暗号化し、ファイルに保存するだけです。その逆も同様です。NSValueTransformerをサブクラス化することで、簡単なTransformerを作成することもできます。これにより、すべての暗号化が1つの場所に抽象化され、二度と心配する必要がなくなります。

于 2012-04-12T13:22:18.537 に答える
1

PDFファイルはパスワードで保護できます。アプリケーション内ではなく外部でPDFファイルを作成すると仮定します。たとえば、Mac OS XでPreview.appを使用して、既存のPDFファイルをパスワードで保護できます(Cmd-Pを押してから、印刷メニューで[PDF]を選択すると、セキュリティオプションを設定できます。さらに簡単に:メニューで[エクスポート...)

iOSでは、次のようにPDFファイルを開くことができます。

CGPDFDocumentRef documentRef = CGPDFDocumentCreateWithURL((__bridge CFURLRef)[NSURL fileURLWithPath:filePath]);
if (!CGPDFDocumentIsUnlocked(documentRef))
    CGPDFDocumentUnlockWithPassword(documentRef, password);
...
于 2012-04-12T21:49:37.547 に答える
0

アプリがコンテンツを保存できるドキュメントフォルダは実際には2つあります。1つは抽出でき、もう1つはプライベートです。このチケットで受け入れられた回答を確認してください。

iTunesで転送された「privateDocuments」フォルダ内のファイルにアクセスする

于 2012-04-15T00:31:22.327 に答える
0

ジェイルブレイクされたデバイスでPDFファイルが抽出されないようにする場合、最も簡単なアプローチは次のようになります。

  • アプリの最初の起動時にランダムな文字列を生成します
  • ランダムな文字列NSUserDefaultsを、独自のアプリのサンドボックス内の状態ファイルに保存します
  • このランダムな文字列を使用して、決定論的であるが理解しにくいアルゴリズムを使用して秘密鍵を作成します
  • この秘密鍵を使用します。この秘密鍵はどこにも保存されませんが、常にオンデマンドで生成され、AESなどでバッファを対称的に暗号化します。

ここのソースコードはおそらく非常に役立つでしょう。

于 2012-04-16T20:22:04.880 に答える