2011-12-05 11 views
0

私は、ドキュメントディレクトリに動画をダウンロードしてMPMoviePlayerControllerで再生するアプリを作っています。ビデオがデバイスから取り出されて再生されるのを防ぐために、私はファイル名を難読化しようとしています。実際のファイル拡張子が "mov"の場合、 "movie.blah"とマークされたムービーを再生したいとしましょう。これをどのようにプレイさせるのですか?一時的に "movie.mov"に名前を変更してから再生を終えたら元に戻す必要がありますか?ご協力いただきありがとうございます。不明瞭なファイル名でファイルを再生するには?

+0

悪い方法。セキュリティのための難読化は、サランラップを衣服に使用することと同じです。このスクリプトを使用して、ハンドラスクリプトを使用してファイルの配信の可否を判断し、ムービーにのみアクセスを提供します。 –

答えて

1

マークBが示すように、セキュリティのために難読化を使用したくないです。ここでうまくいくアプローチがあります。オーバーヘッドは最小です(28バイト)。

  1. 標準の.movファイルを組み込む独自のラッパーファイル形式を定義します。これは、固定長のヘッダと埋め込みムービーファイルの長さを示すパラメータで非常に簡単にすることができます。

  2. カスタムファイル形式では、AESとデバイスハードウェアのユニークキー(おそらくCPUシリアル番号)を使用してデータストリームを暗号化します。

  3. 再生中は、ファイルを必要に応じてメモリ内のバッファにデコードします。部分解読と即時再生をサポートできるはずです。

この方法では、ファイルをコピーして、別のデバイスでファイルを再生するために暗号化キーに使用したものを判断する必要があります。

レイアウト例:

------------------ 
MOV Wrapper Header 
4 bytes: File Type Header ID Magic: "MWHF" 
16 bytes: Encryption Algorithm: "AES256" 
8 bytes: 64-bit unsigned file length 
------------------ 
Embedded and encrypted mov file 

ファイルを保護するための鍵は、暗号化キーの選択肢となります。静的なキーを使用する必要はなく、デバイスの外部からアクセス可能なキーを使用する必要はありません。

この質問は、適切なUUIDを見つけることを支援することがあります。iPhone/iPad user profile tracking

+0

助けてくれてありがとう、ウィル。私は暗号化を調べるつもりです。 –

0

どのようにしてiTunesと同期するときにバックアップされませんディレクトリ内の動画を保存するでしょうか?私は、図書館/キャッシュが適格であると思う。

+0

ディスク容量が必要な場合、アップルはそのディレクトリを消去するためのポリシーを持っていますか?ディスクスペースが必要なときに、 'キャッシュ'のようなものが退去のための良い候補になるでしょう... –

+0

デバイスがディスクスペースを使い果たすと、iOSはキャッシュ内のファイルを削除します。ディスク容量が不足している場合、再度ダウンロードできるビッグビデオファイルは削除候補のように見えます。 –

関連する問題