[gtkqq-dev] Knowledge Share -- WebQQ 登录 改版后的 Passcode 加密算法

60 views
Skip to first unread message

Xiang Wang

unread,
Jun 7, 2012, 10:11:55 AM6/7/12
to gtkqq-dev
Dears:

webqq 3.0修改了passcode encryption的加密算法。

Share 下新的算法。

之前的加密只要两个输入,password 和 vcode. 新算法需要三个输入, 除了之前的两个之外,还有一个uin.

uin是跟webqq server login通信的第二次握手的一个返回值。

在第三次握手的时候 要把encryption的结果再回给server.

加密算法还是基于md5的。 但是需要做16进制到bin的转换。

uin的格式 是 16进制的char  如: "\\x00\\x00\\x00\\x00\\x54\\xb3\\x3c\\x53"

1. 首先把uin转为bin char。
2. 对password做一次md5 ,然后upcase.
3. upcase之后的 hex 作bin转换。
4. 转换之后的bin再拼接uin之前转成的bin
5. 拼接之后的str再作一次md5
6.最后再对md5后的str作upcase.

具体的代码我已经push到 https://github.com/gtkqq/libwebqq/blob/master/src/QQAuthentication.cpp





--

Best Regards~


Xiang Wang

CDC, TrendMicro


liango

unread,
Jun 20, 2012, 3:36:40 AM6/20/12
to gtkq...@googlegroups.com

最后一步是做两次md5啊? md5(md5((unsigned char *)tmp2,len2) +vcode);

Xiang Wang ,你qq多少,我想加你一下,我的:540625404
Reply all
Reply to author
Forward
0 new messages