4

現在、映画をアップできるサイトを企画中です。YouTubeを見ると、一部の映画が(異なるユーザーによって)2回以上アップロードされていることがわかります。アプリケーションを拡張するために、次のアイデアについて考えています。

  1. ユーザーがアップロードする映画ファイルを選択します
  2. JavaScriptは、アップロードされる前に、ファイルからSHA256ハッシュを取得します(MD5ハッシュよりも正確です)。
  3. ウェブサイトはハッシュがすでに存在するかどうかをチェックします
  4. ハッシュが存在しない場合、ファイルがアップロードされます
  5. ハッシュが存在する場合は、メッセージが表示されるか、サーバー上に既存のバージョンへの参照が作成されます。これは、ビデオがアップロードされていない状態です。

Q:SHA256ハッシュを取得するためにJavaScriptを使用してファイルを分析するにはどうすればよいですか?SHA256で十分ですか、それともSHA512(または別のアルゴリズム)を検討する必要がありますか?

4

3 に答える 3

6

HTML5ファイルAPIを使用して、ファイルを読み取ります:http ://www.html5rocks.com/en/tutorials/file/dndfiles 。SHA-256を計算するためのJSコードは次のとおりです。http ://www.webtoolkit.info/javascript-sha256.html

私はこれを試したことがないことを付け加えなければなりませんが、それは可能のようです。Alxandrは正しいです。これは大きなビデオの場合は非常に時間がかかりますが、ブラウザーをフリーズさせないためにWebWorker APIを使用してみてください:http://html5rocks.com/en/tutorials/workers/basics

于 2011-12-04T01:39:05.603 に答える
1

今のところファイルは別として、JavaScriptでSHA-256ハッシュを取得できるかどうかが実際に問題である場合、答えは「はい」です。これを自分で補充するか(悪い考え)、Stanford JS Cryptoライブラリのようなライブラリを使用する(良い考え)ことができます。

File APIに関する限り、すべての主要なデスクトップブラウザの最先端バージョンと最新のAndroidブラウザに実装されています。iOSには実際にはファイルシステムがないため、iOSはサポートされていません。最新の統計については、caniuse.comをチェックしてください。

于 2011-12-04T01:42:04.370 に答える
-1

簡単な答え、できません。つまり、少なくともすべてのブラウザをサポートしたい場合です。ChromeとFireFoxの両方がクライアントでのファイルの読み取りをサポートし、IEはActiveXコントロールの助けを借りてそれをサポートしていると思いますが、すべてのブラウザーで機能するソリューションを取得するには、FlashやSilverlightなどのプラグインを使用する必要があります。また、ビデオマグニチュード(ラージ+ファイル)のファイルアップロードを行う場合、最初からフラッシュなどを使用するのは良い考えだと思いますが、それは私の意見です。

于 2011-12-04T01:36:23.050 に答える