【发布时间】:2020-07-24 18:05:25
【问题描述】:
截至目前,我正在为 Twitter 的 OAuth 1.0 创建签名。
我关注this。
最后我遇到了一个小问题。
他们有
84 2B 52 99 88 7E 88 7602 12 A0 56 AC 4E C2 EE 16 26 B5 49
他们设法创造
hCtSmYh+iHYCEqBWrE7C7hYmtUk=
他们的解释是将“二进制字符串”编码为base64。
我在这个stackoverflow question 看到我基本上需要解码十六进制然后编码base64 来获取
84 2B 52 99 88 7E 88 7602 12 A0 56 AC 4E C2 EE 16 26 B5 49
到
hCtSmYh+iHYCEqBWrE7C7hYmtUk=
它在online calculator 中工作,所以现在我需要将它实现为 javascript,Base64 编码工作正常,看起来像这样:
Buffer.from("ExampleString").toString('base64')
但是十六进制解码似乎是问题所在
我从here得到了解决方案。
这是我的十六进制解码器
String.prototype.hexDecode = function(){
var j;
var hexes = this.match(/.{1,4}/g) || [];
var back = "";
for(j = 0; j<hexes.length; j++) {
back += String.fromCharCode(parseInt(hexes[j], 16));
}
return back;
}
当我使用“我的”解码器和在线计算器时,我得到一个不同的字符串,你知道吗?
【问题讨论】:
标签: javascript oauth twitter-oauth oauth-1.0a