php mcrypt Javascript-Integration

8

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%

~~~

    
Moshe Marciano 19.06.2011, 20:03
quelle

5 Antworten

1

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.

    
Scott Arciszewski 17.02.2014 19:54
quelle
0

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.

    
Nickolay Olshevsky 19.06.2011 20:40
quelle
0

JavaScript Mcrypt spielt gut mit PHP mcrypt. Sie könnten das anstelle von pidder verwenden.

    
Rick 24.11.2012 20:33
quelle
0

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 Ссылка

    
Claudionor Oliveira 10.03.2014 20:34
quelle
0

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.

    
Maximilian Walter 01.04.2014 23:42
quelle