javascript - cryptojs angular 4
crypto-js aes no pueden descifrar lo que encripta (1)
El tipo de retorno de todas las CryptoJS.<blockcipher>.decrypt()
de CryptoJS.<blockcipher>.decrypt()
es un WordArray
que es la representación nativa de datos binarios en CryptoJS. Cuando fuerce la impresión (llamando automáticamente a toString()
), los datos binarios que contiene serán codificados en hexadecimal.
Si desea tener una codificación diferente, debe especificarla. Aquí hay unos ejemplos:
console.log(decrypted.toString()); // Hex encoded
console.log(decrypted.toString(CryptoJS.enc.Hex)); // Hex encoded
console.log(CryptoJS.enc.Hex.stringify(decrypted)); // Hex encoded
console.log(decrypted.toString(CryptoJS.enc.Utf8)); // UTF-8 encoded
console.log(CryptoJS.enc.Utf8.stringify(decrypted)); // UTF-8 encoded
console.log(decrypted.toString(CryptoJS.enc.Base64)); // Base64 encoded
console.log(CryptoJS.enc.Base64.stringify(decrypted)); // Base64 encoded
Hola, estoy intentando descifrar una cadena aes encriptada con crypto-js, pero parece que no funciona bien.
Estoy usando:
<script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/aes.js"></script>
<script>
var encrypted = CryptoJS.AES.encrypt("Message", "Secret Passphrase");
var decrypted = CryptoJS.AES.decrypt(encrypted, "Secret Passphrase");
</script>
Pero mis resultados son:
encrypted: U2FsdGVkX19whKq54yOQt3l1erbtEtn/M0qJjAH+E/E=
decrypted: 4d657373616765
Mi expectativa era que devuelve "Mensaje". ¿Qué me estoy perdiendo?