erschlüsselung in JavaScript und Entschlüsselung mit P
Ich verschlüssele mein Benutzerpasswort in JavaScript wie folgt:
var encryptedPassword = CryptoJS.AES.encrypt(password, "Secret Passphrase");
Es funktioniert gut, aber jetzt versuche ich, in PHP auf der Serverseite wie folgt zu entschlüsseln:
$iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC), MCRYPT_RAND);
$decryptPassword = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, "Secret Passphrase", base64_decode($password), MCRYPT_MODE_CBC, $iv);
es funktioniert überhaupt nicht, die entschlüsselte Passwortzeichenfolge sieht sehr seltsam aus:
string(64) ">�OX2MS��댗v�<$�ʕ��i�̄��_��P���\�կ=�_6(�m����,4WT7��a"
Hier ist der aktuelle Stand meines Codes in JavaScript nach den hilfreichen Kommentaren:
var encryptedPassword = CryptoJS.AES.encrypt(password, "Secret Passphrase");
var ivHex = encryptedPassword.iv.toString();
var ivSize = encryptedPassword.algorithm.ivSize; // same as blockSize
var keySize = encryptedPassword.algorithm.keySize;
var keyHex = encryptedPassword.key.toString();
var saltHex = encryptedPassword.salt.toString(); // must be sent
var openSslFormattedCipherTextString = encryptedPassword.toString(); // not used
var cipherTextHex = encryptedPassword.ciphertext.toString(); // must be sent
Ich sende saltHex und CipherTextHex an den PHP-Server und verwende mcrypt_decrypt () wie folgt:
$iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC), $saltHex);
$decryptPassword = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, "Secret Passphrase", base64_decode($cipherTextHex), MCRYPT_MODE_CBC, $iv);
Mit diesem aktualisierten Code funktioniert es immer noch nicht.
Kann mir jemand helfen, mit der PHP-Funktion mcrypt_decrypt () eine einfache AES-Verschlüsselungsmethode richtig zu entschlüsseln? Ich bin sicher, dass ich mit der Verschlüsselung, dem mcrypt-Modus und den IV-Parametern in meiner mcrypt_decrypt () -Methode etwas falsch gemacht habe. Vielen Dank, wenn Sie wissen.