Foxtable(狐表)用户栏目专家坐堂 → MD5转换问题


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

主题:MD5转换问题

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


加好友 发短信
等级:小狐 帖子:307 积分:2430 威望:0 精华:0 注册:2019/7/19 13:09:00
MD5转换问题  发帖心情 Post By:2022/8/3 11:53:00 [只看该作者]

算法说明:根据传入的content(报文内容)、charset(编码方式)、keys(SecretKey)三个参数进行加密。编码方式目前支持GBK与UTF-8两种,签名SecretKey为菜鸟为CP生成,签名体为报文内容+签名Key,签名算法为:对签名内容进行md5,后将内容转换成base64编码。
例如:c; charset="utf-8"; keys="key123";
签名结果为:ufYU7rvXhHY3IDyZgyt6SA== 即为正确。


以上是阿里云的一个接口签名算法和参考代码,在fox要如何得到签名结果,请求帮忙,以上面例子计算 ufYU7rvXhHY3IDyZgyt6SA==


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


加好友 发短信
等级:超级版主 帖子:105470 积分:536335 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/8/3 12:11:00 [只看该作者]

接口文档地址发上来看看

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


加好友 发短信
等级:小狐 帖子:307 积分:2430 威望:0 精华:0 注册:2019/7/19 13:09:00
  发帖心情 Post By:2022/8/3 12:45:00 [只看该作者]

https://www.yuque.com/docs/share/e29591fb-1105-4a3f-a041-b8b1f618263f?#

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


加好友 发短信
等级:小狐 帖子:307 积分:2430 威望:0 精华:0 注册:2019/7/19 13:09:00
  发帖心情 Post By:2022/8/3 13:58:00 [只看该作者]

老师,我用以下代码生成的和在PHP里生成的做了对比,只要PHP的MD5函数不加true就是一致的结果,这应该怎么做呢?
Dim a As String = "hello1234key123"
a = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(a, "MD5")
a = a.ToLower()

Dim b As Byte() = System.Text.Encoding.[Default].GetBytes(a)
Dim base64 = Convert.ToBase64String(b)
output.show(base64)

PHP的代码,不加true的结果就是一致的
图片点击可在新窗口打开查看

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


加好友 发短信
等级:超级版主 帖子:105470 积分:536335 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/8/3 14:02:00 [只看该作者]

MD5有几种算法,我试过都不对。找他们官方要.net的实例看看

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


加好友 发短信
等级:小狐 帖子:307 积分:2430 威望:0 精华:0 注册:2019/7/19 13:09:00
  发帖心情 Post By:2022/8/3 14:13:00 [只看该作者]

老师,我找了资料,应该是要把FOX里的MD5的结果变成二进制,结果就可以一致了
https://www.runoob.com/php/func-string-md5.html

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


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

试过不行,可以自己试试

Dim s As String = "content=""hello1234"";charset=""utf-8"";keys=""key123"";"
Dim es As String = Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(s, "MD5")
Output.Show(es)
Dim str2 As String = Convert.ToBase64String(Encoding.UTF8.GetBytes(es.ToLower))
Output.Show( str2)

Using md5Hash As System.Security.Cryptography.MD5 = System.Security.Cryptography.MD5.Create()
    Dim data As Byte() = md5Hash.ComputeHash(Encoding.UTF8.GetBytes(s))
    Dim sBuilder As New StringBuilder()
    Dim i As Integer
    For i = 0 To data.Length - 1
        If data(i) < 16 Then
            sBuilder.Append("0" & data(i).ToString("x2"))
        Else
            sBuilder.Append(data(i).ToString("x2"))
        End If
    Next 
    Dim hash As String = sBuilder.ToString().ToLower
    Output.Show(hash)
    Dim bs() As Byte = Encoding.UTF8.GetBytes(hash)
    Dim str As String = Convert.ToBase64String(bs)
    Output.Show( str)
End Using


Dim md5Hash2 As System.Security.Cryptography.MD5 = System.Security.Cryptography.MD5.Create()
Dim data3 As Byte() = md5Hash2.ComputeHash(Encoding.UTF8.GetBytes(s))
Dim str3 As String = Convert.ToBase64String(data3)

Output.Show( str3)

Output.Show( MD5Encrypt(s))

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


加好友 发短信
等级:小狐 帖子:307 积分:2430 威望:0 精华:0 注册:2019/7/19 13:09:00
  发帖心情 Post By:2022/8/3 14:25:00 [只看该作者]

老师,str3是正确的,只需要把Dim s As String = "hello1234key123"就可以了,非常感谢!

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


加好友 发短信
等级:小狐 帖子:307 积分:2430 威望:0 精华:0 注册:2019/7/19 13:09:00
  发帖心情 Post By:2022/8/3 16:57:00 [只看该作者]

老师,我有个新问题,另一个接口需要把位图进行gzip压缩后再转换base64,请问FOX要怎么压缩?可以压缩吗?

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


加好友 发短信
等级:超级版主 帖子:105470 积分:536335 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/8/3 17:20:00 [只看该作者]

接口文档?

 回到顶部
总数 17 1 2 下一页