Ich versuche Javascript zu verwenden, um Daten mit AES-256-CBC und php mcrypt Bibliotheken zu dekodieren, und umgekehrt.
Ich bin mir der problematischen Natur von Javascript und der Tatsache bewusst, dass jeder den Schlüssel sieht, aber ich benutze Javascript, ein Scripting-Tool für Nicht-Web-Umgebung - also nicht besorgt darüber.
Ich fand pidder Ссылка
und verschlüsselt einige Daten mit der Demo-Seite, dann versucht, es über PHP zu entschlüsseln, aber etwas ist falsch und ich kann nicht scheinen, was zu finden ... Ich benutze den gleichen Schlüssel mit beiden Enden, eine 32-Byte-Zeichenfolge
alle Zeiger werden geschätzt
~~~
%Vor%~~~
Versuchen Sie MCRYPT_RIJNDAEL_128 mit einem 32-Byte-Schlüssel für AES-256.
AES ist eine 128-Bit-Blockchiffre, die 128-, 192- und 256-Bit-Schlüssel unterstützt. Rijndael-256 ist eine 256-Bit Blockchiffre und AES. AES ist eine 128-Bit-Blockspezifikation für Rijndael.
Pidder verwendet die Schlüsselableitungsfunktion, um den Schlüssel vom Passwort abzurufen (es sollte HMAC-SHA1 sein, nehme ich an), aber Sie scheinen ein einfaches Passwort als Schlüssel zu verwenden.
JavaScript Mcrypt spielt gut mit PHP mcrypt. Sie könnten das anstelle von pidder verwenden.
Ihr Code ist sequenziell, ehrlich gesagt, ich habe nicht versucht, zu beheben, aber ich habe eine Funktion, die gut funktioniert und Ihnen helfen kann.
%Vor%Siehe Ссылка
zuerst: MCRYPT_RIJNDAEL_256 ist NICHT (!) AES-256-CBC, wenn Sie diese Verschlüsselung wollen, müssen Sie MCRYPT_RIJNDAEL_128 mit einem 265bit aka 32 Zeichen Schlüssel verwenden.
Dies wäre der php-Teil:
%Vor%Diese php-Funktion enthält Padding, was ein wichtiger Teil ist, denn wenn die angegebene Datenlänge kein Vielfaches des Schlüssels ist, werden Sie etwas seltsam finden.
Zum Dekodieren verwenden wir einige meiner Node.js-Skripte mit einer emulierten Methode von phs str_repeat für den iv:
%Vor%HINWEIS: Es wird nicht empfohlen, einen statischen IV ( Initialisierungsvektor ) zu verwenden! Hinweis: JavaScript-Teil ist für Node.js mit seiner Crypto-Bibliothek.
Ich hoffe, das funktioniert für Sie.
Tags und Links javascript php encryption aes pidcrypt