Foxtable(狐表)用户栏目专家坐堂 → 签名算法


  共有3355人关注过本帖树形打印复制链接

主题:签名算法

帅哥哟,离线,有人找我吗?
lshshlxsh
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:658 积分:7896 威望:0 精华:0 注册:2013/12/11 17:49:00
签名算法  发帖心情 Post By:2021/5/5 20:49:00 [只看该作者]

POSTsms.tencentcloudapi.com/?Action=SendSms&Language=zh-CN&Nonce=4306&PhoneNumberSet.0= 8615968015166&Region=&SecretId=&Sign=基伟休闲&SmsSdkAppid=1400517359&TemplateID=947545&TemplateParamSet.0=123321&Timestamp=1620261056&Version=2019-07-11


请问老师 以上内容 使用HMAC-SHA1算法,将上一步中获得的签名原文字符串进行加密,并对加密后的签名串使用Base64编码,得到最终的签名串(下面红色部分)  ,用foxtable 该怎么写?
UxiWCuK5ydqpsLoymyrpiYVEEU4=
[此贴子已经被作者于2021/5/6 8:57:43编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/5/6 8:43:00 [只看该作者]

参考:http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=157480

 回到顶部
帅哥哟,离线,有人找我吗?
lshshlxsh
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:658 积分:7896 威望:0 精华:0 注册:2013/12/11 17:49:00
  发帖心情 Post By:2021/5/6 9:01:00 [只看该作者]

谢谢老师,根据连接算出啦的 是 图1   我要的是图2 的结果



图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看



图片点击可在新窗口打开查看此主题相关图片如下:2.png
图片点击可在新窗口打开查看



[此贴子已经被作者于2021/5/6 9:02:20编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/5/6 9:15:00 [只看该作者]

key的值不对吧,这种加密必须要有一个key,不能是空值

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/5/6 9:22:00 [只看该作者]

网站使用的是utf8编码:Encoding.utf8.GetBytes,不是Encoding.ASCII.GetBytes,改改即可

 回到顶部
帅哥哟,离线,有人找我吗?
lshshlxsh
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:658 积分:7896 威望:0 精华:0 注册:2013/12/11 17:49:00
  发帖心情 Post By:2021/5/6 9:22:00 [只看该作者]

我在 https://1024tools.com/hmac  网页上没填写秘钥  算出来的就是我要的结果  

 回到顶部
帅哥哟,离线,有人找我吗?
bobolan521
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:637 积分:7362 威望:0 精华:1 注册:2013/11/26 7:49:00
  发帖心情 Post By:2021/5/6 9:27:00 [只看该作者]

Dim text1 As String = "POSTsms.tencentcloudapi.com/?Action=SendSms&Language=zh-CN&Nonce=4306&PhoneNumberSet.0= 8615968015166&Region=&SecretId=&Sign=基伟休闲&SmsSdkAppid=1400517359&TemplateID=947545&TemplateParamSet.0=123321&Timestamp=1620261056&Version=2019-07-11"
Dim key1 = ""
Dim byteData = Encoding.utf8.GetBytes(text1)
Dim byteKey = Encoding.utf8.GetBytes(key1)
Dim hmac = new System.Security.Cryptography.HMACSHA1(byteKey)
Dim result = hmac.ComputeHash(byteData)
Dim s = Convert.ToBase64String(result )
output.show(s)


 回到顶部
帅哥哟,离线,有人找我吗?
lshshlxsh
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:658 积分:7896 威望:0 精华:0 注册:2013/12/11 17:49:00
  发帖心情 Post By:2021/5/6 11:18:00 [只看该作者]



谢谢老师 

图片点击可在新窗口打开查看此主题相关图片如下:3.png
图片点击可在新窗口打开查看


下面代码执行后一直报错  麻烦老师帮忙看一下



Dim st As New Date(1970,1,1,8,0,0)
Dim Timestamp As Integer = CInt((Date.Now - st).TotalSeconds()) '时间戳
Dim Nonce As Integer = Rand.Next(2000,3000) '生成200到300之间的随机整数
Dim Signature  As String


Dim haoma As String ="PhoneNumberSet.0= 8615869553734"
Dim neirong As String ="TemplateParamSet.0=987654"

Dim SecretId="AKIDOYdR4SUtON8qV69cZQ2PO8l9UfsrcyKI"

Dim text1 As String = "POSTsms.tencentcloudapi.com/?Action=SendSms&Language=zh-CN&N&" & haoma & "&Region=&SecretId=&Sign=基伟休闲&SmsSdkAppid=1400517359&TemplateID=947545&" & neirong & "&Timestamp=" & Timestamp & "&Version=2019-07-11"
Dim key1 = ""
Dim byteData = Encoding.utf8.GetBytes(text1)
Dim byteKey = Encoding.utf8.GetBytes(key1)
Dim hmac = new System.Security.Cryptography.HMACSHA1(byteKey)
Dim result = hmac.ComputeHash(byteData)
Dim s = Convert.ToBase64String(result )

Dim ul As String = s
Output.Show(UrlEncode(ul))
Signature  = UrlEncode(ul)


Dim hc As New HttpClient("https://sms.tencentcloudapi.com")
hc.C
hc.FormData.Add("Action","SendSms")
hc.FormData.Add("Language","zh-CN")
hc.FormData.Add("Nonce",Nonce)
hc.FormData.Add("SecretId","")
hc.FormData.Add("Region","")
hc.FormData.Add("Sign","基伟休闲")
hc.FormData.Add("PhoneNumberSet.0","+8615869553734")
hc.FormData.Add("SmsSdkAppid","1400517359")
hc.FormData.Add("TemplateID","947545")
hc.FormData.Add("TemplateParamSet.0","987654")
hc.FormData.Add("Timestamp",Timestamp)
hc.FormData.Add("Version","2019-07-11")
hc.FormData.Add("Signature",Signature)
Dim ret As String = hc.getData()
'
Output.Show(ret)



以下为接口文档

https://cloud.tencent.com/document/api/382/38778


图片点击可在新窗口打开查看此主题相关图片如下:11.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:33.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:22.png
图片点击可在新窗口打开查看

[此贴子已经被作者于2021/5/6 11:38:36编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/5/6 14:27:00 [只看该作者]

要使用SecretKey加密

Dim key1 = "Gu5t9xGARNpq86cd98joQYCN3*******"

有了安全凭证SecretId 和 SecretKey后,就可以生成签名串了。以下是生成签名串的详细过程:

假设用户的 SecretId 和 SecretKey 分别是:

  • SecretId: AKIDz8krbsJ5yKBZQpn74WFkmLPx3*******
  • SecretKey: Gu5t9xGARNpq86cd98joQYCN3*******
另外注意参数是否完整,加密的时候拼接的字符串各个参数是有顺序的:

2.1. 对参数排序

首先对所有请求参数按参数名的字典序( ASCII 码)升序排序。注意:1)只按参数名进行排序,参数值保持对应即可,不参与比大小;2)按 ASCII 码比大小,如 InstanceIds.2 要排在 InstanceIds.12 后面,不是按字母表,也不是按数值。


 回到顶部