【发布时间】: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