Ich versuche in Javascript mit CryptoJS zu verschlüsseln und in PHP zu entschlüsseln. Der JS-Code ist:AES-256-CBC Mcrypt-PHP entschlüsseln und Crypto-JS verschlüsseln
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);
Und die 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);
Dies schließt nicht die richtige Antwort zurück.
Ich bin unsicher, wo es schlecht läuft! Ich brauche mein eigenes IV zu tun, aber wenn ich sage, tun gerade:
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);
Es erfolgreich in der PHP-Code funktioniert - nur die key_base64 ist nicht etwas, das geändert werden kann, muss es das sein, was die Benutzer erinnert ... und dann gibt es mir ein Salz, das einen Schlüssel aus dem Passwort zu erhalten eingegeben und IDK, wie es geschaffen, dass CryptoJS mit bekommen
Das machte mich so wütend = [ – Paul
Works, obwohl ich 'hinzugefügt \ r \ n 'in die Liste der Zeichen PHP-Seite –
@Shuric trimmen ich ein Projekt Verwendung cryptoJS haben . Es ist Client Server Mobile App mit Cordova. Ich benutze CryptoJS für die Verschlüsselung und Entschlüsselung nur auf der Client-Seite vorher, weil ich nur die SQLite-Daten nicht lesen können. aber ich muss die Daten auf der Server-Seite verschlüsseln, um sie unlesbar zu machen, während sie über das Internet übertragen. Also ich denke es ist das Gegenteil von deiner Antwort. Kannst du mir helfen, es zu lösen? ehrlich gesagt verstehe ich immer noch nicht mit aes-verschlüsselung ich benutze nur passwort in verschlüsseln und entschlüsseln mit cryptoJS. Ich weiß nicht, was iv und Salz ist. Danke im Voraus. –