Foxtable(狐表)用户栏目专家坐堂 → DecryptText解密错误


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

主题:DecryptText解密错误

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


加好友 发短信
等级:童狐 帖子:256 积分:2874 威望:0 精华:0 注册:2014/12/24 9:51:00
DecryptText解密错误  发帖心情 Post By:2019/11/27 11:42:00 [只看该作者]

仿照微信接口库开发指南制作扫码登录客户端。测试扫码时总是提示:Base-64 字符数组或字符串的长度无效。

按照论坛说的方法重写加密函数后不提示错误了。但测试HttpRequest时好像解密不成功,调试如下:

……

msgbox(nonce & "||" & token)
loginid = DecryptText(urldecode(token),nonce,Vars("dkey"))     '解密出loginid,dkey为公共密钥
msgbox("解出的loginid:" & loginid)

……

第一个msgbox显示出正常信息,第二个msgbox则显示loginid为空

 

单独把解密语句放到命令行执行又可以成功解密出loginid

这到底是怎么回事啊???

 

附重写加密函数:

Public Function DecryptText(s As String, m1 As String, m2 As String) As String
try
    Return Foxtable.DecryptText(s,m1,m2)
catch ex As Exception
    Return Nothing
End try
End Function

 

 


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


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

token、nonce、Vars("dkey")分别是什么内容?发上来测试一下

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


加好友 发短信
等级:童狐 帖子:256 积分:2874 威望:0 精华:0 注册:2014/12/24 9:51:00
  发帖心情 Post By:2019/11/27 14:39:00 [只看该作者]

例如:

nonce=-2024731785

token=aBDXjjilmuIfmO3nzLXWLENQfv3gnHIwQbeFZWLQsquBES4ntrh0UNg6PJNVlHf3sApq9mYUvNgjooldlDmK4Ahh6pme8uXdoJ%2beFEU84Fk%3d

dkey=12345678

 

在命令行里面是可以解密出来,但在HTTPRequest事件里就只返回空值

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:扫码登录.rar

[此贴子已经被作者于2019/11/27 14:45:54编辑过]

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


加好友 发短信
等级:童狐 帖子:256 积分:2874 威望:0 精华:0 注册:2014/12/24 9:51:00
  发帖心情 Post By:2019/11/27 15:08:00 [只看该作者]

呵呵,问题找到了。

原来接收的Token参数不需再要做urldecode转换了。直接用

loginid = DecryptText(token,nonce,Vars("dkey"))

而非示例中的

loginid = DecryptText(urldecode(token),nonce,Vars("dkey"))

如果DecryptText函数有错误值返回就好了,不用那么费神。

 


 回到顶部