【问题标题】:Why doesn't Googles Javascript code for AES Encryption work in this code?为什么用于 AES 加密的 Google Javascript 代码在此代码中不起作用?
【发布时间】:2014-06-11 18:36:39
【问题描述】:
<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 位的密钥。

【问题讨论】:

  • AES 是对称的,因此将相同的密码传递给两者应该没问题。 "myPassword" 对于任何 AES 变体来说都是一个太小的秘密,所以它可能会从中创建一个秘密。也许它对encrypt 这样做,但对decrypt 则不然。您可以尝试使用 256 位密钥而不是密码吗?
  • 我在帖子中添加了更多详细信息。无论如何,它说的是:“如果您使用密码,那么它将生成一个 256 位密钥。”所以,如果我没看错,我不应该用对吗?
  • 听上去真的没有我想的那么简单,这是基于我刚刚在这里读到的,看来我还有一些学习要做:groups.google.com/forum/#!searchin/crypto-js/AES/crypto-js/…

标签: javascript encryption aes cryptojs


【解决方案1】:

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

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

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

【讨论】:

  • 真的很感激。谢谢。
猜你喜欢
  • 2014-04-10
  • 1970-01-01
  • 2013-01-10
  • 1970-01-01
  • 1970-01-01
  • 2011-10-25
  • 2021-01-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多