【问题标题】:Decrypt - Encrypt crypto-js解密 - 加密 crypto-js
【发布时间】:2014-08-28 12:51:19
【问题描述】:

我正在尝试获取 crypto-js 库来加密/解密一条简单的消息,请参阅以下 jsfiddle (http://jsfiddle.net/6gunq2nx/)

<script>
    var encrypted = CryptoJS.AES.encrypt("this is some test", "770A8A65DA156D24EE2A093277530142");
    var decrypted = CryptoJS.AES.decrypt(encrypted, "770A8A65DA156D24EE2A093277530142");
    alert(decrypted);
</script>

问题是,它没有正确解密消息,我尝试了 AES 和 DES 但都不起作用,我做错了什么?请看下面的截图

【问题讨论】:

  • 提示:“t”、“h”和“i”的数值等价物是 116、104 和 105;以十六进制表示,即 74、68、69。

标签: javascript algorithm encryption aes des


【解决方案1】:

这几乎是正确的。您得到的字符串是原始字符串的十六进制表示。尝试像这样转换它:

var decrypted = CryptoJS.AES.decrypt(encrypted, "770A8A65DA156D24EE2A093277530142").toString(CryptoJS.enc.Utf8);

分叉的jsfiddle:http://jsfiddle.net/1qgzk9j8/

【讨论】:

  • 太棒了,示例中没有提到转换为字符串:) 非常感谢!
  • 这让我摆脱了调试狂潮!谢谢!
【解决方案2】:

试试这个:-

// Replace this with user input (only user should know the passphrase which can be used to decrypt the message)
var passphrase = '770A8A65DA156D24EE2A093277530142';

// Some content that we want to crypt
var content = 'this is some test';

// Use CryptoJS.AES to encrypt content using AES (Advanced Encryption Standard)
 var encryptedContent = CryptoJS.AES.encrypt(content, passphrase);

// Use CryptoJS.AES also to decrypt content
 var decryptedContent = CryptoJS.AES.decrypt(encryptedContent, passphrase).toString(CryptoJS.enc.Utf8);

alert(encryptedContent);
alert(decryptedContent);

Demo

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-06
    • 1970-01-01
    • 2023-03-17
    • 2023-03-17
    相关资源
    最近更新 更多