ファイルをサーバーにアップロードするための既存のフロントエンド(角)コードを変更する必要があります。アップロードする前にファイルを暗号化する必要があります。Javascript formdata:ファイルを追加する前に暗号化
現在のアプローチは、ファイルの数を追加し、以下に示すように、単一のリクエストでそれらを送信するためにいるFormDataを使用しています。
function uploadFiles(wrappers){
var data = new FormData();
// Add each file
for(var i = 0; i < wrappers.length; i++){
var wrapper = wrappers[i];
var file = wrapper.file;
data.append('file_' + i, file);
}
$http.post(uri, data, requestCfg).then(
/*...*
私は他のプロジェクトでフォージを使用していないが、決してコンテキストのこの種にされていると実際にファイルを暗号化してFormDataコンテンツとして追加する方法は実際には分かりません。
フォージは簡単なAPIを提供します:
var key = forge.random.getBytesSync(16);
var iv = forge.random.getBytesSync(8);
// encrypt some bytes
var cipher = forge.rc2.createEncryptionCipher(key);
cipher.start(iv);
cipher.update(forge.util.createBuffer(someBytes));
cipher.finish();
var encrypted = cipher.output;
バックエンドが強敵を使用してファイルをrecievesし、すべてのファイルhanldingはすでに配線されています。したがって、既存のフロントエンドロジックを使用するだけで、暗号化ロジックを挿入することに固執したいと思います。その中で、暗号化しなければならないのはフォームデータ全体ではありません...私はこれにまだアプローチしていません。
ご提案は大歓迎です!
ここでの目標は何ですか?転送中のファイルを保護しようとしているのか、Webサーバーを制御している人物からファイルを保護しようとしていますか? – Quentin
ないあなたの質問が、あなたはネイティブの[暗号](https://www.w3.org/TR/WebCryptoAPI/)APIを見てきましたか? (ユーザーが確実に最新のブラウザを持っている場合には、それは本当の暗号ランダム性と内蔵のアルゴリズムを提供) – Touffy
こんにちは@Quentin、確かに、リモートサーバは、内容を読み取ることができない必要があります。これは、ブラウザと実際の処理エンジンの中間ノードです。医療データは、潜在的な誤用に関しては気になるようです。 – Jem