AES 256 auf der Client-Seite (JS) und auf dem Server (PHP)

Ich versuche, Daten auf der Serverseite und auf dem Client mit demselben Vorgang zu ver- und entschlüsseln, nämlich mit AES-256.

uf dem Server verwende ich PHP und den Client. Ich verwende CryptoJS. Bisher konnte ich nur den Client auf dem Server verschlüsseln und entschlüsseln. Siehe Code:

JS

<script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/aes.js"></script>
<script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/pbkdf2.js"></script>
<script>
    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');

    var encrypted = CryptoJS.AES.encrypt("Message", key256Bits500Iterations, { iv: iv });  
    var data_base64 = encrypted.ciphertext.toString(CryptoJS.enc.Base64); 
    var iv_base64   = encrypted.iv.toString(CryptoJS.enc.Base64);       
    var key_base64  = encrypted.key.toString(CryptoJS.enc.Base64);
</script>

PHP

<?php
    $encrypted = base64_decode("data_base64"); // data_base64 from JS
    $iv        = base64_decode("iv_base64");   // iv_base64 from JS
    $key       = base64_decode("key_base64");  // key_base64 from JS

    $plaintext = rtrim( mcrypt_decrypt( MCRYPT_RIJNDAEL_128, $key, $encrypted, MCRYPT_MODE_CBC, $iv ), "\t\0 " );

Wie kann ich Daten auf beiden Seiten (Client und Server) ver- und entschlüsseln, damit die Kommunikation mit PHP und CryptoJS in derselben Sprache erfolgt?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage