Einführung in 3DES:
3DES (oder Triple DES) ist der allgemeine Begriff für das Blockkennwort des Triple Data Encryption -Algorithmus. Es entspricht der Anwendung eines DES -Verschlüsselungsalgorithmus dreimal auf jeden Datenblock. Aufgrund der erweiterten Computerleistung von Computern ist die Schlüssellänge des ursprünglichen DES-Kennworts leicht gezwungen geworden. 3DES ist so konzipiert, dass sie eine relativ einfache Methode liefert, nämlich ähnliche Angriffe durch Erhöhen der Schlüssellänge der DES, anstatt einen brandneuen Block -Chiffre -Algorithmus zu entwerfen.
Heute muss ich DES auf der Client -Seite implementieren. Ich fand schnell http://www.tero.co.uk/des/code.php
Anwendungsbeispiel
var key = "Dies ist eine 24 -Byte -Taste !!"; var message = "Dies ist eine Testnachricht"; var cipheText = Des (Schlüssel, Nachricht, 1, 0); Dokument.Writeeln ("Des test:" + stringToHex (CipherText));Natürlich wurde festgestellt, dass dies nicht das war, was wir brauchten. Unser Server verwendet Des-Edel, was in Java als Triple DES bezeichnet wird
Hier gibt es eine kleine Grube, die 3DEs unterstützt
// Wie viele Iterationen (1 für DES, 3 für Triple DES) var iterations = key.length> 8? 3: 1; // geändert von Paul 16/6/2007, um Triple DES für 9+ Byte -Schlüssel zu verwenden
Es gibt jedoch einen kleinen Fehler bei der Verwendung des Schlüssels
Wenn es sich um 64 Bit handelt, ist es die positive Lösung von DES, aber 3DEs können 128 Bit oder 192 Bit betragen.
Der Prozess von 3DEs ist en (K3, DE (K2, EN (K1, P))))
Wenn K1 = K3 ist, kann ein vereinfachte 128-Bit-Schlüssel verwendet werden.
KEY = "K1K1K1K1K2K2K2K2K2" In der Tat sollte es K1K1K1K1K1K2K2K2K2K1K1K1K1K1 entsprechen. Der Autor hat es nicht implementiert
Ein anderer ist der Polstermodus. Kurz gesagt, wie sollte bei der Blockverschlüsselung ein unzureichender Raum gefüllt werden? Unten finden Sie den Quellcode
if (padding == 2) Nachricht += ""; // pad die Nachricht mit SpaceSelse if (padding == 1) {temp = 8- (len%8); Nachricht += string.fromCharCode (temp, temp, temp, temp, temp, temp, temp, temp); if (temp == 8) len += 8;} // pkcs7 paddingelse if (! padding) meldung += "/0/0/0/0/0/0/0/0/0/0"; // polst die Nachricht mit Null -Bytes ausJetzt wird PKCS5/7 im Allgemeinen verwendet
Achten Sie auf diese beiden Punkte, wenn Sie anrufen, tatsächlich wird Des-one implementiert.
Beispiel
var key = "b964b7c58e99b59" + "b964b7c5"; var message = "Dies ist eine Testmeldung"; var ciphertext = Des (Schlüssel, Nachricht, 1, 0,0,1); document.writeln ("<br/> Des3 -Test:" + stringtohex (ciphertext);Das obige sind die 3DEs in JavaScript, die Ihnen vom Herausgeber vorgestellt wurden. Ich hoffe, es wird Ihnen hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Editor wird Ihnen rechtzeitig antworten. Vielen Dank für Ihre Unterstützung auf der Wulin.com -Website!