2016-05-11 11 views
0

ng-Datei-Upload ist eine sehr effektive Bibliothek und ich würde sie gerne benutzen, aber nach dem Hinzufügen eines Verschlüsselungssystems.Wie verschlüsseln Dateien vor dem Hochladen?

Ich möchte Dateien mit RSA-Protokoll in Javascript verschlüsseln, bevor Sie sie hochladen. Hast du eine Idee wie man das mit ng-Datei-Upload macht?

Gibt es eine Möglichkeit, Blob vor dem Hochladen der Dateien zu ändern?

PS: Verschlüsselung muss in Javascript sein, da ich HTTPS nicht verwenden kann.

Antwort

0

Möchten Sie Ihre Änderungen ändern ng-Datei-Upload? Wenn nicht, könnten Sie die $ngfBlobUrl verwenden, die sie für jede Datei bereitstellen.

Lesen Sie das mithilfe der HTML5-Dateireader-API, um die Binärdaten abzurufen. Verschlüsseln Sie diese Daten und konvertieren Sie sie zurück in einen Blob (Funktionen dazu finden Sie im interwebz). Sie können dies dann an den Server zurücksenden.

+0

Thx für die Antwort. Ich würde es vorziehen, NG-Datei-Upload nicht zu forcieren, wenn es möglich ist. Aber in der Tat ist mein Problem mehr über das Schneiden der Datei ist kleine Stücke, verschlüsseln Sie jedes Stück und senden Sie dann alle von ihnen. Bei großen Dateien kann ich sie nicht gleichzeitig verschlüsseln. –

+0

In Ordnung, hier ist was Sie tun müssen. Holen Sie sich das blobData vom blobURL Split die Zeichenfolge in Blöcken (I bis etwa 10.000 Zeichen gehen je) Encrypt die einzeln Stücke, dann, wenn alle, das Array zu JSON-String konvertieren getan wird, dann diese Zeichenfolge ein speichern Textdatei (mit Blob). Kehren Sie diesen Prozess um, um die Datei zu entschlüsseln. Ich empfehle dringend, ** WebWorker ** zu verwenden, da sie an separaten Threads arbeiten und die Benutzeroberfläche nicht verzögern, da dieser Prozess schwer werden kann. Überprüfen Sie den Quellcode von pm.highshare.com, ich habe dieses letzte Jahr koded, hoffe es hilft. –

+0

Ok, ich verstehe besser, wie man das macht. Es scheint ein guter Ansatz zu sein. Ich versuche es ! –

Verwandte Themen