Bash 如何从VBscript生成Pusher身份验证字符串?

Bash 如何从VBscript生成Pusher身份验证字符串?,bash,vbscript,md5,pusher,Bash,Vbscript,Md5,Pusher,请参阅中的相同问题 这是我的主要代码: loadFile "md5.vbs" wscript.echo "md5('test') = " & md5("test") loadFile "sha256.vbs" wscript.echo "sha256('test') = " & sha256("test") method = "POST" app_id = <redacted> key = "<redacted>" secret = "<redac

请参阅中的相同问题

这是我的主要代码:

loadFile "md5.vbs"
wscript.echo "md5('test') = " & md5("test")
loadFile "sha256.vbs"
wscript.echo "sha256('test') = " & sha256("test")

method = "POST"
app_id = <redacted>
key = "<redacted>"
secret = "<redacted>"
tstamp = datediff("s",#1970/1/1#,dateadd("h",5,now()))

data = "{""data"":{""message"":""hello world""},""name"":""my_event"",""channel"":""test_channel""}"
path = "/apps/" & app_ID & "/events"
query = "body_md5=" & md5(data) & "&auth_version=1.0&auth_key=" & key & "&auth_timestamp=" & tstamp
sig = sha256(method & vbLf & path & vbLf & query & vbLf & secret)

url = "https://api.pusherapp.com" & path & "?" & query & "&auth_signature=" & sig
wscript.echo url
dim xmlhttp 
set xmlhttp = Createobject("MSXML2.ServerXMLHTTP")
xmlhttp.Open method,url,false
xmlhttp.setRequestHeader "Content-Type", "application/json"
xmlhttp.send data
WScript.echo xmlhttp.responsetext
Set xmlhttp = nothing
loadFile“md5.vbs”
wscript.echo“md5('test')=”和md5(“test”)
加载文件“sha256.vbs”
wscript.echo“sha256('test')=”和sha256(“test”)
method=“POST”
应用程序id=
key=“”
secret=“”
tstamp=datediff(“s”,1970/1/1,dateadd(“h”,5,now()))
data=“{”“data”“:{”“message”“:”“hello world”“}”,“name”“:”“my_event”“,”“channel”“:”“test_channel”“}”
path=“/apps/”&app\u ID&“/events”
query=“body\u md5=“&md5(数据)&”&auth\u version=1.0&auth\u key=“&key&”&auth\u timestamp=“&tstamp
sig=sha256(方法&vbLf&path&vbLf&query&vbLf&secret)
url=”https://api.pusherapp.com“&path&”?“&query&”&auth_signature=“&sig”
wscript.echo url
dimXMLHTTP
设置xmlhttp=Createobject(“MSXML2.ServerXMLHTTP”)
Open方法,url,false
xmlhttp.setRequestHeader“内容类型”、“应用程序/json”
xmlhttp.send数据
WScript.echo xmlhttp.responsetext
设置xmlhttp=nothing
可以找到
md5.vbs
sha256.vbs

我得到这个错误:

无效签名:您应该发送HmacSHA256Hex(“POST\n/apps/(redacted)/events\nauth_key=(redacted)&auth_timestamp=1471291494&auth_version=1.0&body_md5=(redacted)”,但您发送了“(redacted)”


(代码编辑:在sig中添加了
secret
,将
crlf
更改为
lf

您使用的是
vbCrLf
\r\n
)换行符,而我假定
vbLf
\n
-仅适用)应该有换行符。我用
vbLf
替换了
vbCrLf
的两个实例,得到了相同的错误。那么,此时错误消息中的“应该”和“是”字符串之间的确切区别(编辑部分除外)是什么?这仅仅是MD5值吗?是的,“您发送的”是一个散列。我根本不理解
HMacSHA256Hex(param1,您的密钥)
的内容。您使用的是
vbCrLf
\r\n
)换行符,而我假定
vbLf
\n
)应该有换行符。我用
vbLf
替换了
vbCrLf
的两个实例,得到了相同的错误。那么,此时错误消息中的“应该”和“是”字符串之间的确切区别(编辑部分除外)是什么?这仅仅是MD5值吗?是的,“您发送的”是一个散列。我根本不理解
HMacSHA256Hex(param1,您的密钥)
这件事。