【发布时间】:2023-03-25 00:12:01
【问题描述】:
我正在查看 dotnet 中的一个示例,如下所示:https://dotnetfiddle.net/t0y8yD。
HttpServerUtility.UrlTokenEncode 方法的输出是:
Pn55YBwEH2S2BEM5qlNrq-LMNE8BDdHYwbWKFEHiPZo1
当我尝试在 NodeJS 中使用 encodeURI、encodeURIComponent 或任何其他尝试完成相同操作时,我得到以下信息:
Pn55YBwEH2S2BEM5qlNrq+LMNE8BDdHYwbWKFEHiPZo=
从上面可以看出,“-”应该是“+”,最后一个字符部分不同。哈希创建相同并输出相同的缓冲区。
var hmac = crypto.createHmac("sha256", buf);
hmac.update("9644873");
var hash = hmac.digest("base64");
我怎样才能让两者匹配?另一个重要的注意事项是,这是一个用例,我不确定是否还有其他字符可以做到这一点。
我不确定是 dotnet 变体不正确还是 NodeJS 版本不正确。但是,比较将在 dotnet 端进行,所以我需要 node 来匹配它。
【问题讨论】:
标签: javascript asp.net node.js base64 urlencode