2

クライアントがサーバーから受信したバイナリ データを復号化する必要があるプロジェクトに取り組んでいます。シナリオは、サーバーが圧縮および暗号化された形式のバイナリ データを保持しているというものです。ブラウザーは、このデータ (ファイル) を受信し、復号化して解凍し、ローカル マシン上のユーザーが指定した場所にダウンロードする必要があります。ブラウザでこれを行うにはいくつかの制限があることを理解しています-

  1. Javascript はローカル ストレージにアクセスできますか。ハードドライブ上のユーザー指定の場所に複数のファイルを書き込み/ストリーミングできますか? もしそうなら、どの API を探すべきか。

  2. ブラウザで Javascript (またはその他のテクノロジ) を使用して、ブラウザ内でこのデータ ストリームを復号化 (AES-256) および解凍できますか?

これらの問題は、HTML5 のFileAPIを使用して解決できますか?

編集:
SHA2 を AES に置き換えました。暗号化ではなく、整合性チェックに SHA2 を使用しています。これはタイプミスでした。

4

3 に答える 3

2
  1. ユーザーのファイル システムに直接アクセスすることはできません。ただし、HTML5 ファイル システム APIを使用して、サンドボックス化された仮想ファイル システムにデータを保存できます。
  2. CryptoJS にはSHA-2の実装があります

XMLHttpRequestサーバーからデータを受信するには、 を使用することをお勧めしますresponseType = "arraybuffer"

于 2012-07-26T09:25:22.163 に答える
1

JavaScript 暗号化ライブラリを使用することをお勧めします

于 2012-07-26T09:25:34.643 に答える
0

SHA-2 はデータを暗号化または復号化する手段ではなく、ハッシュ アルゴリズムであり、データが改ざんされているかどうかを判断するために使用されます。暗号化アルゴリズムは、DES、3-DES、AES などです。

持っているデータのハッシュを生成し、受け取ったハッシュと比較する必要があると思います。

于 2012-07-26T09:32:46.647 に答える