1

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

Luce
  • 9
  • 3

0 Answers0