以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]使用 HMAC-SHA1 算法进行签名?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=117662)

--  作者:mxko
--  发布时间:2018/4/17 9:51:00
--  [求助]使用 HMAC-SHA1 算法进行签名?

如题在Foxtable中怎么实现:

生成签名

  1. 使用 HMAC-SHA1 算法对请求进行加密(SHA1算法加密后的输出必须是原始的二进制数据,否则签名失败);

  2. 对 orignal 使用 HMAC-SHA1 算法进行签名,然后将 orignal 附加到签名结果的末尾,再进行 Base64 编码,得到最终的 sign;

  3. 生成签名的公式如下:
    SignTmp = HMAC-SHA1(SecretKey, orignal)
    Sign = Base64(SignTmp.orignal)

  4. https://cloud.tencent.com/document/product/641/12409


--  作者:有点甜
--  发布时间:2018/4/17 9:55:00
--  

SHA1参考

 

http://www.foxtable.com/mobilehelp/scr/0175.htm

 

Base64参考

 

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=105707&skin=0

 


--  作者:mxko
--  发布时间:2018/4/17 10:29:00
--  
以下是引用有点甜在2018/4/17 9:55:00的发言:

SHA1参考

 

http://www.foxtable.com/mobilehelp/scr/0175.htm

 

Base64参考

 

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=105707&skin=0

 

用 strTmp = Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(strTmp, "SHA1")

怎么传入SecretKey想下面代码?

SignTmp = HMAC-SHA1(SecretKey, orignal)

 

[此贴子已经被作者于2018/4/17 10:30:51编辑过]

--  作者:有点甜
--  发布时间:2018/4/17 11:06:00
--  

参考代码

 


Dim text As String = "a=1252821871&b=tencentyun&k=AKIDgaoOYh2kOmJfWVdH4lpfxScG2zPLPGoK&e=1438669115&t=1436077115&r=11162&u=0&f="
Dim key = "nwOKDouy5JctNOlnere4gkVoOUz5EYAb"
Dim byteData = Encoding.ASCII.GetBytes(text)

Dim byteKey = Encoding.ASCII.GetBytes(key)
Dim hmac = new System.Security.Cryptography.HMACSHA1(byteKey)
Dim result = hmac.ComputeHash(byteData)

Dim ary(result.length+byteData.length-1) As Byte
result.CopyTo(ary,0)
byteData.CopyTo(ary, result.length)

Dim s = Convert.ToBase64String(ary)
output.show(s)


--  作者:mxko
--  发布时间:2018/4/17 11:41:00
--  

感谢