我试图创建一个脚本,加密字符串,这里是我的代码:
<!DOCTYPE html>
<html lang="nl">
<head>
<link rel="stylesheet" type="text/css" href="/denoryplay3/css/style.css">
<title>Encryption</title>
</head>
<body>
<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.2/rollups/aes.js" integrity="sha256-/H4YS+7aYb9kJ5OKhFYPUjSJdrtV6AeyJOtTkw6X72o=" crossorigin="anonymous"></script>
<script>
function encrypt(data, key){
return CryptoJS.AES.encrypt(data, key);
}
function decrypt(data, key){
return CryptoJS.AES.decrypt(data, key);
}
</script>
</body>
</html>
我试着运行这个代码:
alert(decrypt(encrypt("hi", "12345"), '12345'));
,如果你能理解的话;)但是返回6869,我不明白为什么,有人能帮我吗?谢谢!
我期望它输出类似于
U2FsdGVkX1++p462vXg3LggRE5kzRtX3VbKkcMBWuHY=
但没有成功。
1条答案
按热度按时间vecaoik11#
错误出现在解密的方式中。请参阅下面的解决方案。
解密需要将
CryptoJS.enc.Utf8
参数传递给.toString()
,以便指定解密文本的 * encoding *(在我们的示例中是UTF8)。