AES-256-CBC-Mcrypt-PHP entschlüsseln und Crypto-JS Verschlüsseln
Ich versuche zu verschlüsseln, in Javascript mit CryptoJS und entschlüsseln in PHP. Der JS-code ist:
var salt = CryptoJS.lib.WordArray.random(128/8);
var key256Bits500Iterations = CryptoJS.PBKDF2("Secret Passphrase", salt, { keySize: 256/32, iterations: 500 });
var iv = CryptoJS.enc.Hex.parse('101112131415161718191a1b1c1d1e1f'); //just chosen for an example, usually random as well
encrypted = CryptoJS.AES.encrypt("Message", key512Bits1000Iterations, { iv: iv });
var data_base64 = crypted.ciphertext.toString(CryptoJS.enc.Base64);
var iv_base64 = crypted.iv.toString(CryptoJS.enc.Base64);
var key_base64 = crypted.key.toString(CryptoJS.enc.Base64);
PHP ist wie folgt:
$encrypted = base64_decode($data_base64);
$iv = base64_decode($iv_base64);
$key = base64_decode($key_base64);
$plaintext = mcrypt_decrypt( MCRYPT_RIJNDAEL_128, $key, $encrypted, MCRYPT_MODE_CBC, $iv);
echo ($plaintext);
Diese nicht wieder die richtige Antwort.
Ich bin unsicher, wo die Dinge sind schlecht! Ich brauche meine eigenen IV, wenn ich aber nur sagen:
CryptoJS.AES.Encrypt("Message", "Secret Passphrase");
var data_base64 = crypted.ciphertext.toString(CryptoJS.enc.Base64);
var iv_base64 = crypted.iv.toString(CryptoJS.enc.Base64);
var key_base64 = crypted.key.toString(CryptoJS.enc.Base64);
Er HAT erfolgreich die Arbeit in den PHP-code -- nur die key_base64 ist nicht etwas, das geändert werden kann, muss es das sein, was der Benutzer erinnert sich... Und dann gibt es mir ein Salz, um einen Schlüssel aus der passphrase eingegeben und IDK, wie Sie es geschafft, dass die Verwendung von CryptoJS
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihrem code arbeiten, wenn man nur fix ein paar Tippfehler gibt es
JS
PHP
\r\n
zu der Liste von Zeichen zu kürzen PHP-Seite