以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- MD5转换问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=179020) |
-- 作者:fendouww -- 发布时间:2022/8/3 11:53:00 -- MD5转换问题 算法说明:根据传入的content(报文内容)、charset(编码方式)、keys(SecretKey)三个参数进行加密。编码方式目前支持GBK与UTF-8两种,签名SecretKey为菜鸟为CP生成,签名体为报文内容+签名Key,签名算法为:对签名内容进行md5,后将内容转换成base64编码。 以上是阿里云的一个接口签名算法和参考代码,在fox要如何得到签名结果,请求帮忙,以上面例子计算 ufYU7rvXhHY3IDyZgyt6SA== |
-- 作者:有点蓝 -- 发布时间:2022/8/3 12:11:00 -- 接口文档地址发上来看看 |
-- 作者:fendouww -- 发布时间:2022/8/3 12:45:00 -- https://www.yuque.com/docs/share/e29591fb-1105-4a3f-a041-b8b1f618263f?# |
-- 作者:fendouww -- 发布时间: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的结果就是一致的 |
-- 作者:有点蓝 -- 发布时间:2022/8/3 14:02:00 -- MD5有几种算法,我试过都不对。找他们官方要.net的实例看看 |
-- 作者:fendouww -- 发布时间:2022/8/3 14:13:00 -- 老师,我找了资料,应该是要把FOX里的MD5的结果变成二进制,结果就可以一致了 https://www.runoob.com/php/func-string-md5.html
|
-- 作者:有点蓝 -- 发布时间: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 -- 发布时间:2022/8/3 14:25:00 -- 老师,str3是正确的,只需要把Dim s As String = "hello1234key123"就可以了,非常感谢! |
-- 作者:fendouww -- 发布时间:2022/8/3 16:57:00 -- 老师,我有个新问题,另一个接口需要把位图进行gzip压缩后再转换base64,请问FOX要怎么压缩?可以压缩吗? |
-- 作者:有点蓝 -- 发布时间:2022/8/3 17:20:00 -- 接口文档? |