一直想让路由器也用上srun3000,但是不知道协议,我们这又关闭了web认证方式。后来google到了一些文章,通过实验,基本可行,现在我来总结、简析一下。
srun3000这个东西有个网页认证方式,就是连上网后,随便打开一个网页,就会自动跳转到一个网页,像cmcc那样。这个网页有可能是个登录界面,那么登录即可。可惜我们这不是的,而是一个信息页面,可以下载客户端。但是如果用手机打开,就会跳转到mobile.html,这个是个登录界面,但是输入正确的用户名密码之后,提示不允许web登录。
web登录是向认证服务器post一段数据,后来抓包发现,客户端也是post这段数据,只不过有些值不同,密码也经过了处理:
username=%s&password=%s&drop=%d&type=2&n=%d&mac=%s
数据中username是用户名,password是密码,drop是是否只访问免费资源(1是,0否),type代表认证方式(1为web,2为客户端),n代表客户端版本(我这是8),mac当然是mac地址了
web方式password是明文,而客户端方式是加密了的。加密方法是这样:
有两个字符串,一个password,一个key,设password 为 12345678,key为 20678439。
逆序循环取key的字符,也就是 9,3,4,8,7,6,0,2,9,3,…
分别与password 的 [0], [1], [2] … 直到password结束 进行异或运算
对于结果,一个字符
[0],[2],….[2n]的字符,译码之后:(低4位 加上 0x36 )连上 (高4位 加上 0x63)
[1],[3],….[2n+1]的字符,译码之后:(高4位 加上 0x63)连上 (低4位 加上 0x36 )
然后连接之后的结果就是提交的密码的密文
提交的时候,用 urlencode或类似的函数处理这段数据。其中key与服务器时间戳有关系,详情可参考此处
搞定密码加密了,就可以实现登录了。向认证服务器的3333端口post上述数据即可,服务器会返回数据。php代码如下: 继续阅读srun3000协议简析及php登录示例