I'm having trouble with basic decryption. I've looked all around for a working example like This post but haven't quite found a working example.
function CryptoJSAesDecrypt(passphrase, encrypted_json_string) {
var obj_json = JSON.parse(encrypted_json_string);
var encrypted = obj_json.ciphertext;
var salt = CryptoJS.enc.Hex.parse(obj_json.salt);
var iv = CryptoJS.enc.Hex.parse(obj_json.iv);
var key = CryptoJS.PBKDF2(passphrase, salt, {
hasher: CryptoJS.algo.SHA512,
keySize: 64 / 8,
iterations: 999
});
var decrypted = CryptoJS.AES.decrypt(encrypted, key, {
iv: iv
});
return decrypted.toString(CryptoJS.enc.Utf8);
}
Function I converted to PHP
function CryptoJSAesDecrypt($passphrase, $encrypted_json_string) {
$obj_json = json_decode($encrypted_json_string);
$encrypted = ($obj_json->ciphertext);
$salt = $obj_json->salt;
$iv = hex2bin($obj_json->iv);
$key = hash_pbkdf2("sha256", $passphrase, $salt, 999, 64 / 8);
return openssl_decrypt(base64_decode($encrypted), 'aes-256-cbc', $key, OPENSSL_RAW_DATA, $iv);
}
Which step am I wrong? My example encode: https://codepen.io/pen/VwxqgQK