gpt4 book ai didi

JavaScript 编码无法正常工作

转载 作者:太空宇宙 更新时间:2023-11-03 16:59:20 25 4
gpt4 key购买 nike

我在用 JavaScript 编码时遇到问题,我在这里没有得到预期的结果

这里有几件事我想列出来- 1) 当我在 ruby​​ 中进行编码时,会得到预期的结果。- 2) 但是当我尝试在 JavaScript 中执行相同的步骤时却没有得到预期的结果


1) 请在下面找到工作正常的 ruby​​ 代码。

require 'openssl'
require "base64"
key = Base64.decode64("yZQungXDXtksG4Ypcl0f6moRXWTCHh/CYDViXnZvbC0=")
data = "<content><app-id>9cd73144-46ca-4a02-852b-fa452b1d8bdc</app-id><hmac>HMACSHA256</hmac><signing-time>2013-11-19T12:06:11.409Z</signing-time></content>"
result = OpenSSL::HMAC.digest('sha256', key , data)
final_result = Base64.encode64(result)

ruby 输出:收到预期的输出

Key =  "\xC9\x94.\x9E\x05\xC3^\xD9,\e\x86)r]\x1F\xEAj\x11]d\xC2\x1E\x1F\xC2`5b^vol-"
result = "\xC4\x9B\x94\x9C\anQT\xF9';\xE9$\x1C\x98k\xEE)\xD77\xFD\xCA\a\xD1L\xBB\x9B\xD2r\xE9\x1A\xA8"
final_result = "xJuUnAduUVT5JzvpJByYa+4p1zf9ygfRTLub0nLpGqg=\n"

2) 请在下面找到未按预期运行的 JavaScript 代码

  • 使用 crypo.js 进行编解码

<html>
<head>
<script src="http://crypto-js.googlecode.com/svn/tags/3.0.2/build/rollups/hmac-sha256.js"></script>
<script src="http://crypto-js.googlecode.com/svn/tags/3.0.2/build/components/enc-base64-min.js"></script>

<script>
key = window.atob("yZQungXDXtksG4Ypcl0f6moRXWTCHh/CYDViXnZvbC0=");
data = "<content><app-id>9cd73144-46ca-4a02-852b-fa452b1d8bdc</app-id><hmac>HMACSHA256</hmac><signing-time>2013-11-19T12:06:11.409Z</signing-time></content>";
console.log("key");
console.log(key);
result = CryptoJS.HmacSHA256(data, key);
console.log("result");
console.log(result.toString());
final_result = CryptoJS.enc.Base64.stringify(result);
console.log("final_result");
console.log(final_result.toString());
</script>
</head>
<body>
</body>
</html>

Javascript 输出:收到预期的输出

Key =  "É.Ã^Ù,)r]êj]dÂÂ`5b^vol-"
result = "035a028de6bea2c7843b4310b28b57f5193d7597840ea2f23c255cb889d77d60"
final_result = "A1oCjea+oseEO0MQsotX9Rk9dZeEDqLyPCVcuInXfWA="

所以在这里我不明白,为什么我得到 key , resultfinal_result不同之处在于 ruby and JavaScript

请分享您的经验,这对我有很大帮助

谢谢

最佳答案

我已经尝试了很多,并在下面找到了解决方案。

<html>
<head>
<script src="http://crypto-js.googlecode.com/svn/tags/3.0.2/build/rollups/hmac-sha256.js"></script>
<script src="http://crypto-js.googlecode.com/svn/tags/3.0.2/build/components/enc-base64-min.js"></script>
<script src="jquery.base64.js"></script>
<script>
var key = Base64.decode("yZQungXDXtksG4Ypcl0f6moRXWTCHh/CYDViXnZvbC0=");
console.log(key)
words = CryptoJS.enc.Latin1.parse(key);
words = CryptoJS.enc.Hex.parse(words.toString());
result = CryptoJS.HmacSHA256("<content><app-id>9cd73144-46ca-4a02-852b-fa452b1d8bdc</app-id><hmac>HMACSHA256</hmac><signing-time>2013-11-19T12:06:11.409Z</signing-time></content>", words);
console.log(result);
final_result = CryptoJS.enc.Base64.stringify(result);
console.log(final_result);
</script>
</head>
</html>

现在我得到了预期的结果。

key = "É.Ã^Ù,)r]êj]dÂÂ`5b^vol-"
result = "c49b949c076e5154f9273be9241c986bee29d737fdca07d14cbb9bd272e91aa8"
final_result = "xJuUnAduUVT5JzvpJByYa+4p1zf9ygfRTLub0nLpGqg="

关于JavaScript 编码无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20549235/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com