中文验证码模拟登陆问题

2016-06-25 13:46:10 +08:00
 ifane

如图,学校的教务系统变成了中英文数字混合的验证码.原来的模拟登录(只有英文数字)失效了,猜想的登录时候可能把用户输入的验证码经过处理了一下.

我用 chrome 看了一下他 post 提交了啥参数,如图,现在 post 时 checkcode 的参数. 登录时候就是将验证码经过 URLEncode 编码为 gb2312 格式,我将验证码参数经过修改以后 post 过去, 结果发现还是无法登录

中文验证码有什么不同么(手动衰)

9732 次点击
所在节点    Android
13 条回复
ifane
2016-06-25 16:16:09 +08:00
似乎有一点点的思路,好像它验证码字符串的编码问题,即我输入的验证码是 utf8,但是登录的时候需要将其编码转换为其要求的编码,目前不知道他要求的编码是什么编码
dong3580
2016-06-25 16:41:05 +08:00
看起来像是 Unicode , urlencode
ifane
2016-06-25 17:15:23 +08:00
刚刚在网上搜索 post 中文乱码。可能这个 post 中文验证码涉及到编码的问题
misaka19000
2016-06-25 17:33:12 +08:00
这个是进行了 UrlEncode 编码
可以参考: http://tool.chinaz.com/tools/urlencode.aspx 进行解码

相比较而言,我更好奇你是怎么识别出来图片上面的东西的?
just1
2016-06-25 18:24:25 +08:00
post 数据自动 url 编码,正常直接发中文就可以了
ifane
2016-06-25 18:36:57 +08:00
@misaka19000 用户手动输入..
ifane
2016-06-25 18:37:12 +08:00
@just1 直接正常发中文 提示验证码错误.
ifane
2016-06-25 18:59:41 +08:00
可能是一条思路:
post 数据自动 UrlEncode,且是数据 gbk2312 的 UrlEncode 编码. 所以需要输入数据的编码为 gb2312.
ifane
2016-06-25 19:57:19 +08:00
登录的时候 post 数据要求是 gb2312 编码, Android 的 EditText 得到的字符串默认是 utf8 编码,如果转换编码就会乱码. 找了半天没找到相关的 api 可以设置编码的, 各位兄弟们有直到方法的波
imNull
2016-06-25 23:18:09 +08:00
搭楼请教下 lz ,由用户手动填写验证码, cookie 的处理是这个思路么?
向验证码图片发起请求并保存返回的 cookie ,用户输入验证码再附加上一步获取到的 cookie , post 给服务器
Ouyangan
2016-06-26 00:13:32 +08:00
@imNull 验证码作用在登陆的时候 , 成功登陆拿到的是已经认证的了 cookie, 往后的操作只需要带上 cookie 服务器就认为你是经过认证的 , 明白了么
ifane
2016-06-26 06:06:14 +08:00
@imNull 我的教务系统有两个 Cookie ,一个是打开教务系统(是打开不是登录)后系统返回你一个 Cookie ,要通过这个 cookie 得到验证码,然后 post 参数加这个 cookie 登陆成功后系统又返回一个 cookie ,以后的操作要通过这俩 cookie 去访问
imNull
2016-06-26 07:44:49 +08:00
@Ouyangan @ifane 我在验证码的请求和处理上有些疑惑,现在明白了,感谢解答。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/288234

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX