开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 3433|回复: 13
收起左侧

[已解决] 请教,QQ空间登录的JS问题?

 关闭 [复制链接]
结帖率:91% (171/188)
发表于 2014-12-12 19:43:22 | 显示全部楼层 |阅读模式   广西壮族自治区南宁市
10精币
本帖最后由 付笑 于 2014-12-12 19:45 编辑

研究QQ空间登录的时候,发现了一个问题 下面一个简单的代码


var salt="\x00\x00\x00\x00\x09\x5a\xee\x17";

eval('salt="' + salt + '"');

研究结果表明:不执行第二句的话,登录就不能成功,但是第二句不就相当于  salt=salt ;吗?

可是直接把第二句改写成salt=salt;也不能登录成功?请问这句有什么神奇的地方 eval('salt="' + salt + '"');





最佳答案

查看完整内容

js里面的数据是很随意的 加了引号 说明是文本型 比如random newDate() 直接写出 是属于整数型 要是 random+“” 这样 就是文本型 salt 是属于十六进制 你要是当做参数来传入 是不行的易语言无法识别 你可以先替换到js 只需要传入密码 和验证码就行 老版本的QQ加密里面的uin 就是这个salt 或者你用salt=uin2hex(QQ) 这样也行 ...

求助知识:请将问题描述清楚,最好把你有问题的源码打包上传上来,这样更方便大家帮助你。
友情提醒:本版被采纳的主题可在 申请荣誉值 帖子申请荣誉值,获得 3点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。

结帖率:100% (17/17)
发表于 2014-12-12 19:43:23 | 显示全部楼层   广东省*
付笑 发表于 2014-12-12 22:54
那是两个分号啊,为什么这样就不一样了

js里面的数据是很随意的 加了引号 说明是文本型 比如random newDate() 直接写出 是属于整数型 要是 random+“” 这样 就是文本型 salt 是属于十六进制 你要是当做参数来传入 是不行的易语言无法识别 你可以先替换到js  只需要传入密码 和验证码就行 老版本的QQ加密里面的uin 就是这个salt 或者你用salt=uin2hex(QQ)
这样也行

评分

参与人数 1荣誉 +3 收起 理由
笨潴 + 3 热心帮助他人,荣誉+3,希望继续努力(*^__^*) 嘻嘻!

查看全部评分

回复

使用道具 举报

结帖率:93% (186/199)
发表于 2014-12-12 19:58:50 | 显示全部楼层   广东省珠海市
salt="' + salt + '"
相当于这样:"'\x00\x00\x00\x00\x09\x5a\xee\x17'"
回复

使用道具 举报

签到天数: 1 天

发表于 2014-12-12 20:00:53 | 显示全部楼层   广东省揭阳市
这个salt 其实就是你QQ号码的十六进制~
回复

使用道具 举报

结帖率:100% (17/17)
发表于 2014-12-12 20:24:59 | 显示全部楼层   广东省*
这个salt 其实就是你QQ号码的十六进制~ 昨天分析的新版QQRSA算法(PS没试过是否正确)开源
http://bbs.125.la/thread-131499-1-1.html
(出处: 精易论坛)
回复

使用道具 举报

结帖率:91% (171/188)
 楼主| 发表于 2014-12-12 20:59:21 | 显示全部楼层   广西壮族自治区南宁市
Hoibben 发表于 2014-12-12 20:00
这个salt 其实就是你QQ号码的十六进制~

这是从GET回来的那个数据吗?就是直接用好像不行,要用eval('salt="' + salt + '"');

这句处理下才可以用,不懂为什么
回复

使用道具 举报

结帖率:91% (171/188)
 楼主| 发表于 2014-12-12 21:08:32 | 显示全部楼层   广西壮族自治区南宁市
雨诺潇潇 发表于 2014-12-12 19:58
salt="' + salt + '"
相当于这样:"'\x00\x00\x00\x00\x09\x5a\xee\x17'"

我试了下,这样不行,  我发我的代码给你看看

function getEncryption(password, salt, vcode, isMd5) {
//salt = uin2hex(salt);
eval('salt="' + salt + '"');    //就是这个地方,用上面的uin2hex(salt); 也可以,但是salt要直接是QQ号才行

//salt="' + salt + '"

        vcode = vcode || "";
        password = password || "";
        var md5Pwd = isMd5 ? password : md5(password), h1 = hexchar2bin(md5Pwd), s2 = md5(h1 + salt), rsaH1 = $.RSA.rsa_encrypt(h1), rsaH1Len = (rsaH1.length / 2).toString(16), hexVcode = TEAobj.TEA.strToBytes(vcode.toUpperCase()), vcodeLen = "000" + vcode.length.toString(16);
        while (rsaH1Len.length < 4) {
            rsaH1Len = "0" + rsaH1Len
        }
        TEAobj.TEA.initkey(s2);
        var saltPwd = TEAobj.TEA.enAsBase64(rsaH1Len + rsaH1 + TEAobj.TEA.strToBytes(salt) + vcodeLen + hexVcode);
        TEAobj.TEA.initkey("");
       // __monitor(488358, 1);
        return saltPwd.replace(/[\/\+=]/g, function(a) {
            return {"/": "-","+": "*","=": "_"}[a]
        })
    }



QQ空间登录.zip (749.17 KB, 下载次数: 80)
回复

使用道具 举报

结帖率:91% (171/188)
 楼主| 发表于 2014-12-12 21:38:57 | 显示全部楼层   广西壮族自治区南宁市
雨诺潇潇 发表于 2014-12-12 19:58
salt="' + salt + '"
相当于这样:"'\x00\x00\x00\x00\x09\x5a\xee\x17'"

salt="\x00\x00\x00\x00\x09\x5a\xee\x17"

直接把这个写到代码里也可以,为什么会这样了,但是做为参数传给函数就不行了,真奇怪
回复

使用道具 举报

结帖率:91% (171/188)
 楼主| 发表于 2014-12-12 21:44:41 | 显示全部楼层   广西壮族自治区南宁市
雨诺潇潇 发表于 2014-12-12 19:58
salt="' + salt + '"
相当于这样:"'\x00\x00\x00\x00\x09\x5a\xee\x17'"

eval('salt="' + salt + '"'); 这句相当于这句 salt="\x00\x00\x00\x00\x09\x5a\xee\x17";

但是salt本身就等于"\x00\x00\x00\x00\x09\x5a\xee\x17"的啊,为什么写成salt=salt; 就是不能成功呢
回复

使用道具 举报

结帖率:93% (186/199)
发表于 2014-12-12 21:53:13 | 显示全部楼层   广东省珠海市
原来的 salt 这个是没有三个冒号的  所以这样写 eval('salt="' + salt + '"');  是为了增加冒号
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表