QQ空间登录协议实现:易语言篇

来源:互联网 发布:天弘基金官网淘宝店 编辑:程序博客网 时间:2024/04/30 00:01

这里用到了超级模块的md5算法,和精易模块的访问网络

因为易语言访问网络自动设置cookie,所以如果自己设置访问cookie就有点麻烦了。

编辑框3_验证码的内容可不填。

登录 (编辑框_QQ号.内容, 编辑框_密码.内容, 编辑框_验证码.内容)

.版本 2.程序集 QQ空间登录协议.子程序 登录, 文本型.参数 QQ号, 文本型.参数 QQ密码, 文本型.参数 验证码, 文本型, 可空.局部变量 action, 文本型.局部变量 文本, 文本型.如果真 (验证码 = “”)  ' 如果未填写验证码,就取验证码    验证码 = 是否要验证码 (QQ号)    .如果真 (验证码 = “1”)        返回 (“验证码”)    .如果真结束.如果真结束action = “http://ptlogin2.qq.com/login?u=” + QQ号 + “&p=” + 加密 (QQ号, QQ密码, 验证码) + “&verifycode=” + 验证码 + “&aid=1006102&u1=http%3A%2F%2Fid.qq.com%2Findex.html%23myfriends&h=1&ptredirect=1&ptlang=2052&from_ui=1&dumy=&fp=loginerroralert&action=8-57-411578&mibao_css=&t=5&g=1&js_type=0&js_ver=10015&login_sig=M68RroVE7d9cWVGLMysPechIltwu1GWLDkOrMwJ1O2VISYLTKwX6t3*qLIwl1DIa”文本 = 访问网页s (action)返回 (文本).子程序 是否要验证码, 文本型, 公开, 要就返回"要",不要返回验证码符号.参数 判断的QQ号, 文本型.局部变量 临时新值, 文本型, , , 例:ptui_checkVC('0','!AVB','\x00\x00\x00\x00\x3d\x86\x96\xff');临时新值 = 访问网页s (“http://check.ptlogin2.qq.com/check?uin=” + 判断的QQ号 + “&appid=1006102&js_ver=10015&js_type=0&login_sig=y9izLTQDUx-VRJ*tu9aAnzzd3Th5R5d3-LSQ-R-DgQmZx7cRXxodffTGfDUzJtox&u1=http%3A%2F%2Fid.qq.com%2Findex.html&r=” + 随机数 (15)).如果真 (文本_取出中间文本 (临时新值, “'”, “','”) = “1”)  ' 1为要验证码    返回 (“1”).如果真结束返回 (文本_取出中间文本 (临时新值, “','”, “','”)).子程序 取验证码, 字节集, 公开.参数 QQ号, 文本型, , 放入要取到验证码的QQ号返回 (网页_访问 (“http://captcha.qq.com/getimage?aid=1006102&r=0.” + 随机数 () + “&uin=” + QQ号)).子程序 随机数, 文本型, , 取随机数0-9.返回结果.参数 随机数位数, 整数型, 可空, 默认为17位.且不以0开头.局部变量 临时随机数, 文本型置随机数种子 ().如果真 (随机数位数 = 0)    随机数位数 = 17.如果真结束.计次循环首 (随机数位数, 随机数位数)    .如果真 (随机数位数 = 1)        临时随机数 = 到文本 (取随机数 (1, 9))        到循环尾 ()    .如果真结束    临时随机数 = 临时随机数 + 到文本 (取随机数 (0, 9)).计次循环尾 ()返回 (临时随机数).子程序 加密, 文本型, , 加密.参数 QQ, 文本型.参数 密码, 文本型.参数 验证码, 文本型.局部变量 字节集, 字节集.局部变量 str1, 字节集.局部变量 str2, 文本型.局部变量 str3, 文本型验证码 = 到大写 (验证码)str1 = md5转字节集 (MD5.加密 (到字节集 (密码)))str2 = MD5.加密 (str1 + uin转字节集 (QQ))str3 = MD5.加密 (到字节集 (str2 + 到大写 (验证码)))返回 (str3).子程序 md5转字节集, 字节集, , 专门转换password.参数 md5值, 文本型.局部变量 haxpass, 字节集, , , password的十六进制.局部变量 计次变量, 整数型.局部变量 haxtext, 文本型, , , 十六进制文本haxtext = md5值.变量循环首 (取文本长度 (md5值) - 1, 3, -2, 计次变量)    haxtext = 文本替换 (haxtext, 计次变量, 0, “ ”).变量循环尾 ()haxpass = 还原字节集2 (haxtext)返回 (haxpass).子程序 uin转字节集, 字节集, , 返回字节集的uin.参数 uin, 文本型, , 十进制的uin.局部变量 haxUIN, 字节集, , , 返回值.局部变量 haxtext, 文本型, , , 十六进制文本.局部变量 计次变量, 整数型haxtext = 取十六进制文本 (到整数 (uin))haxtext = 取重复文本 (16 - 取文本长度 (haxtext), “0”) + haxtext.变量循环首 (15, 3, -2, 计次变量)    haxtext = 文本替换 (haxtext, 计次变量, 0, “ ”).变量循环尾 ()haxUIN = 还原字节集2 (haxtext)返回 (haxUIN).子程序 访问网页s, 文本型, , 基于网页_访问s.参数 网址, 文本型.局部变量 返回值, 文本型返回值 = 网页_访问s (网址, , , , , , , , , , )返回 (返回值)