在javascript中读取加密对象

时间:2014-10-08 16:47:29

标签: javascript cryptojs

var token = "WMwiDeJrawUKHif7D5a8yd4ne6Mv";
var salt =  "ERtrg56hfg5";

var key = CryptoJS.enc.Hex.parse('B374A26A71490437AA024E4FADD5B497FDFF1A8EA6FF12F6FB65AF2720B59CCF');
var iv  = CryptoJS.enc.Hex.parse('7E892875A52C59A3B588306B13C31FBD');

var encrypted = CryptoJS.AES.encrypt(token, key, { iv: iv });

context.setVariable("encryptedtoken", encrypted);

但它没有设置变量说它是一个对象。 我需要做什么

1 个答案:

答案 0 :(得分:0)

我认为你必须使用encrypted.ciphertext

var encrypted = CryptoJS.AES.encrypt(token, key, { iv: iv });

context.setVariable("encryptedtoken", encrypted.ciphertext);

来自CryptoJS documentation

加密后返回的密文不是字符串。它是一个CipherParams对象。 CipherParams对象使您可以访问加密期间使用的所有参数。在字符串上下文中使用CipherParams对象时,它会根据格式策略自动转换为字符串。默认值是与OpenSSL兼容的格式。

<script>
    var encrypted = CryptoJS.AES.encrypt("Message", "Secret Passphrase");

    alert(encrypted.key);        // 74eb593087a982e2a6f5dded54ecd96d1fd0f3d44a58728cdcd40c55227522223
    alert(encrypted.iv);         // 7781157e2629b094f0e3dd48c4d786115
    alert(encrypted.salt);       // 7a25f9132ec6a8b34
    alert(encrypted.ciphertext); // 73e54154a15d1beeb509d9e12f1e462a0

    alert(encrypted);            // U2FsdGVkX1+iX5Ey7GqLND5UFUoV0b7rUJ2eEvHkYqA=
</script>