为什么不't谷歌用于AES加密的Javascript代码在此代码中工作

Why doesn't Googles Javascript code for AES Encryption work in this code?

本文关键字:代码 Javascript 工作 加密 AES 用于 谷歌 为什么不      更新时间:2023-09-26
<script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/aes.js"></script>
<script>
var toEncMes = "This is a secret message.";
var secPas = "myPassword";
var encrypted = CryptoJS.AES.encrypt(toEncMes, secPas);
alert (encrypted);
var decrypted = CryptoJS.AES.decrypt(encrypted, secPas);
alert (decrypted);
</script>

我可能只是不理解这个概念,但我不知道。

当我显示解密的结果时,代码的最终结果仍然是一团混乱。

我在这里找到了这个:https://code.google.com/p/crypto-js/

原始条目如下所示:

高级加密标准(AES(是美国联邦信息处理标准(FIPS(。它是经过5年的过程选择的,其中对15个竞争设计进行了评估。

<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>

CryptoJS支持AES-128、AES-192和AES-256。它会根据你传入的密钥的大小来选择变体。如果你使用密码短语,它会生成一个256位的密钥。

您正在向原始解密对象发出警报-此类对象的默认编码为十六进制。它需要使用适当的人类可读编码转换为字符串:

<script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/aes.js"></script>
<script>
var toEncMes = "This is a secret message.";
var secPas = "myPassword";
var encrypted = CryptoJS.AES.encrypt(toEncMes, secPas);
alert (encrypted);
var decrypted = CryptoJS.AES.decrypt(encrypted, secPas);
alert (decrypted.toString(CryptoJS.enc.Utf8)); // <---- note specified encoding
</script>

当然,通常的加密警告信号仍然适用:这并不能确保您的消息没有被篡改,等等。