Foxtable(狐表)用户栏目专家坐堂 → [求助] 提示未定类型"clsHS256"


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

主题:[求助] 提示未定类型"clsHS256"

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


加好友 发短信
等级:幼狐 帖子:70 积分:546 威望:0 精华:0 注册:2018/4/30 11:50:00
[求助] 提示未定类型"clsHS256"  发帖心情 Post By:2018/8/31 2:09:00 [显示全部帖子]


[此贴子已经被作者于2018/8/31 10:49:51编辑过]

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


加好友 发短信
等级:幼狐 帖子:70 积分:546 威望:0 精华:0 注册:2018/4/30 11:50:00
  发帖心情 Post By:2018/9/1 1:58:00 [显示全部帖子]

我把文档又认真看了一遍,然后用网页版的sh256和之前的代码算出的结果一致,但是怎么都算不出人家调试器给的值。

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


加好友 发短信
等级:幼狐 帖子:70 积分:546 威望:0 精华:0 注册:2018/4/30 11:50:00
  发帖心情 Post By:2018/9/1 10:29:00 [显示全部帖子]

Dim hc As New HttpClient("https://mws.amazonservices.com")  
Dim xmlsj As String = hc.GetData()
Dim doc As New Xml.XmlDocument
doc.LoadXml(xmlsj)

Dim sURL As String = "https://mws.amazonservices.co.uk/Orders/2013-09-01"

Dim sRequest As String = ""
sRequest &= "AWSAccessKeyId=" & UrlEncode("remove")
sRequest &= "&Action=" & UrlEncode("ListOrders")
sRequest &= "&CreatedAfter=" & UrlEncode("2018-09-01T01:51:17Z").ToUpper()
sRequest &= "&MWSAuthToken=" & UrlEncode("remove")
sRequest &= "&MarketplaceId.Id.1=" & UrlEncode("A1F83G8C2ARO7P")
sRequest &= "&OrderStatus.Status.1=" & UrlEncode("Unshipped")
sRequest &= "&OrderStatus.Status.2=" & UrlEncode("PartiallyShipped")
sRequest &= "&SellerId=" & UrlEncode("remove")
sRequest &= "&SignatureMethod=" & UrlEncode("HmacSHA256")
sRequest &= "&SignatureVersion=" & UrlEncode("2")
sRequest &= "&Timestamp=" & UrlEncode(doc.DocumentElement.FirstChild.Attributes.GetNamedItem("timestamp").Value).ToUpper().Remove(23,4)
sRequest &= "&Version=" & UrlEncode("2013-09-01")

Dim StringToSign As String = "GET\n" & "mws.amazonservices.co.uk\n" & "/Orders/2013-09-01\n" & sRequest
output.show(StringToSign)   

Dim myEncoder As New System.Text.UTF8Encoding
Dim Key() As Byte = myEncoder.GetBytes("remove")
Dim XML() As Byte = myEncoder.GetBytes(StringToSign)
Dim myHMACSHA256 As New System.Security.Cryptography.HMACSHA256(Key)
Dim HashCode As Byte() = myHMACSHA256.ComputeHash(XML)
Dim result = Convert.ToBase64String(HashCode)     ‘和调试器输出的结果不一致,调试器使用POST,代码用的GET

Dim s As String = result    
Dim b As new StringBuilder
For Each c As Char In s
Dim v As String = UrlEncode(c)
If v.Length > 1 Then
    b.Append(UrlEncode(c).ToUpper())
Else
    b.Append(c)
End If
Next
Output.Show(b.ToString)  
Dim qm As String = b.ToString  
sRequest &= "&Signature=" & qm
Dim URL As String = sURL & "?" & sRequest
Dim xmlorders As New HttpClient(URL)
Dim str As String = xmlorders.GetData()
Output.Show(str)

调试器:https://mws.amazonservices.co.uk/scratchpad/index.html,不考虑最终的请求,在调试器里输入remove也可以算出base64,
调试器用的是POST,代码用的GET


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


加好友 发短信
等级:幼狐 帖子:70 积分:546 威望:0 精华:0 注册:2018/4/30 11:50:00
  发帖心情 Post By:2018/9/1 11:06:00 [显示全部帖子]

http://docs.developer.amazonservices.com/zh_CN/dev_guide/DG_ClientLibraries.html

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


加好友 发短信
等级:幼狐 帖子:70 积分:546 威望:0 精华:0 注册:2018/4/30 11:50:00
  发帖心情 Post By:2018/9/1 15:21:00 [显示全部帖子]

这个没有啊

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


加好友 发短信
等级:幼狐 帖子:70 积分:546 威望:0 精华:0 注册:2018/4/30 11:50:00
  发帖心情 Post By:2018/9/1 16:06:00 [显示全部帖子]

官方没有。我找的是别人的问题贴,用的也是他们的代码。按照接口给的说明,待签名的字符串最后组合起来后后面都带换行符,我不知道是不是在换行符这块出了问题,是用\n还是vbcrlf,说明里面提供了一个伪语法来创建字符串,用的"\n",但是java例子给的是"POST\n",这个换行符在不在计算中?

下面这个是vb6的sha256,遇到的问题就是帖子的标题问题
http://www.vbforums.com/showthread.php?635398-VB6-HMAC-SHA-256-HMAC-SHA-1-Using-Crypto-API

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


加好友 发短信
等级:幼狐 帖子:70 积分:546 威望:0 精华:0 注册:2018/4/30 11:50:00
  发帖心情 Post By:2018/9/1 17:29:00 [显示全部帖子]

好的,谢谢

 回到顶部