开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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


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

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

查看: 2311|回复: 6
收起左侧

[已解决] 请教迅雷登录的JS加密问题!

 关闭 [复制链接]
结帖率:100% (5/5)
发表于 2012-7-27 20:17:36 | 显示全部楼层 |阅读模式   广东省珠海市
登录的是迅雷的云点播 地址:http://vod.xunlei.com/home.html

登陆时发现有加密 JS查看 找到这样一段加密步骤

var aa = N($("#" + M.p).val());
        aa = N(aa);
        aa = N(aa + $("#" + M.verifycode).val().toUpperCase());
        Z.p = encodeURIComponent(aa);


让后查找N这个函数在哪里,找到这一堆加密代码:
function N(Y) {
        return A(z(C(Y), Y.length * H))    }    function b(Y) {        return i(z(C(Y), Y.length * H))    }    function j(Y) {        return t(z(C(Y), Y.length * H))    }    function c(Y, Z) {        return A(X(Y, Z))    }
    function n(Y, Z) {
        return i(X(Y, Z))    }    function v(Y, Z) {        return t(X(Y, Z))    }
    function e() {        return N("abc") == "900150983cd24fb0d6963f7d28e17f72"    }    function z(ai, ad) {        ai[ad >> 5] |= 128 << ((ad) % 32);        ai[(((ad + 64) >>> 9) << 4) + 14] = ad;        var ah = 1732584193;        var ag = -271733879;        var af = -1732584194;        var ae = 271733878;        for (var aa = 0; aa < ai.length; aa += 16) {            var ac = ah;            var ab = ag;            var Z = af;            var Y = ae;            ah = s(ah, ag, af, ae, ai[aa + 0], 7, -680876936);            ae = s(ae, ah, ag, af, ai[aa + 1], 12, -389564586);            af = s(af, ae, ah, ag, ai[aa + 2], 17, 606105819);            ag = s(ag, af, ae, ah, ai[aa + 3], 22, -1044525330);            ah = s(ah, ag, af, ae, ai[aa + 4], 7, -176418897);            ae = s(ae, ah, ag, af, ai[aa + 5], 12, 1200080426);            af = s(af, ae, ah, ag, ai[aa + 6], 17, -1473231341);            ag = s(ag, af, ae, ah, ai[aa + 7], 22, -45705983);            ah = s(ah, ag, af, ae, ai[aa + 8], 7, 1770035416);            ae = s(ae, ah, ag, af, ai[aa + 9], 12, -1958414417);            af = s(af, ae, ah, ag, ai[aa + 10], 17, -42063);            ag = s(ag, af, ae, ah, ai[aa + 11], 22, -1990404162);            ah = s(ah, ag, af, ae, ai[aa + 12], 7, 1804603682);            ae = s(ae, ah, ag, af, ai[aa + 13], 12, -40341101);            af = s(af, ae, ah, ag, ai[aa + 14], 17, -1502002290);            ag = s(ag, af, ae, ah, ai[aa + 15], 22, 1236535329);            ah = T(ah, ag, af, ae, ai[aa + 1], 5, -165796510);            ae = T(ae, ah, ag, af, ai[aa + 6], 9, -1069501632);            af = T(af, ae, ah, ag, ai[aa + 11], 14, 643717713);            ag = T(ag, af, ae, ah, ai[aa + 0], 20, -373897302);            ah = T(ah, ag, af, ae, ai[aa + 5], 5, -701558691);            ae = T(ae, ah, ag, af, ai[aa + 10], 9, 38016083);            af = T(af, ae, ah, ag, ai[aa + 15], 14, -660478335);            ag = T(ag, af, ae, ah, ai[aa + 4], 20, -405537848);            ah = T(ah, ag, af, ae, ai[aa + 9], 5, 568446438);            ae = T(ae, ah, ag, af, ai[aa + 14], 9, -1019803690);            af = T(af, ae, ah, ag, ai[aa + 3], 14, -187363961);            ag = T(ag, af, ae, ah, ai[aa + 8], 20, 1163531501);            ah = T(ah, ag, af, ae, ai[aa + 13], 5, -1444681467);            ae = T(ae, ah, ag, af, ai[aa + 2], 9, -51403784);            af = T(af, ae, ah, ag, ai[aa + 7], 14, 1735328473);            ag = T(ag, af, ae, ah, ai[aa + 12], 20, -1926607734);            ah = J(ah, ag, af, ae, ai[aa + 5], 4, -378558);            ae = J(ae, ah, ag, af, ai[aa + 8], 11, -2022574463);            af = J(af, ae, ah, ag, ai[aa + 11], 16, 1839030562);
            ag = J(ag, af, ae, ah, ai[aa + 14], 23, -35309556);            ah = J(ah, ag, af, ae, ai[aa + 1], 4, -1530992060);            ae = J(ae, ah, ag, af, ai[aa + 4], 11, 1272893353);            af = J(af, ae, ah, ag, ai[aa + 7], 16, -155497632);            ag = J(ag, af, ae, ah, ai[aa + 10], 23, -1094730640);            ah = J(ah, ag, af, ae, ai[aa + 13], 4, 681279174);            ae = J(ae, ah, ag, af, ai[aa + 0], 11, -358537222);            af = J(af, ae, ah, ag, ai[aa + 3], 16, -722521979);            ag = J(ag, af, ae, ah, ai[aa + 6], 23, 76029189);            ah = J(ah, ag, af, ae, ai[aa + 9], 4, -640364487);            ae = J(ae, ah, ag, af, ai[aa + 12], 11, -421815835);            af = J(af, ae, ah, ag, ai[aa + 15], 16, 530742520);            ag = J(ag, af, ae, ah, ai[aa + 2], 23, -995338651);            ah = r(ah, ag, af, ae, ai[aa + 0], 6, -198630844);            ae = r(ae, ah, ag, af, ai[aa + 7], 10, 1126891415);            af = r(af, ae, ah, ag, ai[aa + 14], 15, -1416354905);            ag = r(ag, af, ae, ah, ai[aa + 5], 21, -57434055);            ah = r(ah, ag, af, ae, ai[aa + 12], 6, 1700485571);            ae = r(ae, ah, ag, af, ai[aa + 3], 10, -1894986606);            af = r(af, ae, ah, ag, ai[aa + 10], 15, -1051523);            ag = r(ag, af, ae, ah, ai[aa + 1], 21, -2054922799);            ah = r(ah, ag, af, ae, ai[aa + 8], 6, 1873313359);            ae = r(ae, ah, ag, af, ai[aa + 15], 10, -30611744);            af = r(af, ae, ah, ag, ai[aa + 6], 15, -1560198380);            ag = r(ag, af, ae, ah, ai[aa + 13], 21, 1309151649);            ah = r(ah, ag, af, ae, ai[aa + 4], 6, -145523070);            ae = r(ae, ah, ag, af, ai[aa + 11], 10, -1120210379);            af = r(af, ae, ah, ag, ai[aa + 2], 15, 718787259);            ag = r(ag, af, ae, ah, ai[aa + 9], 21, -343485551);            ah = u(ah, ac);            ag = u(ag, ab);            af = u(af, Z);            ae = u(ae, Y)        }        return Array(ah, ag, af, ae)    }    function l(ad, aa, Z, Y, ac, ab) {        return u(d(u(u(aa, ad), u(Y, ab)), ac), Z)    }    function s(aa, Z, ae, ad, Y, ac, ab) {        return l((Z & ae) | ((~Z) & ad), aa, Z, Y, ac, ab)    }    function T(aa, Z, ae, ad, Y, ac, ab) {        return l((Z & ad) | (ae & (~ad)), aa, Z, Y, ac, ab)    }    function J(aa, Z, ae, ad, Y, ac, ab) {        return l(Z ^ ae ^ ad, aa, Z, Y, ac, ab)    }    function r(aa, Z, ae, ad, Y, ac, ab) {        return l(ae ^ (Z | (~ad)), aa, Z, Y, ac, ab)
    }
    function X(aa, ad) {
        var ac = C(aa);
        if (ac.length > 16) {
            ac = z(ac, aa.length * H)
        }
        var Y = Array(16), ab = Array(16);
        for (var Z = 0; Z < 16; Z++) {
            Y[Z] = ac[Z] ^ 909522486;
            ab[Z] = ac[Z] ^ 1549556828
        }
        var ae = z(Y.concat(C(ad)), 512 + ad.length * H);
        return z(ab.concat(ae), 512 + 128)
    }
    function u(Y, ab) {
        var aa = (Y & 65535) + (ab & 65535);
        var Z = (Y >> 16) + (ab >> 16) + (aa >> 16);
        return (Z << 16) | (aa & 65535)
    }
    function d(Y, Z) {
        return (Y << Z) | (Y >>> (32 - Z))
    }
    function C(ab) {
        var aa = Array();
        var Y = (1 << H) - 1;
        for (var Z = 0; Z < ab.length * H; Z += H) {
            aa[Z >> 5] |= (ab.charCodeAt(Z / H) & Y) << (Z % 32)
        }
        return aa
    }
    function t(aa) {
        var ab = "";
        var Y = (1 << H) - 1;
        for (var Z = 0; Z < aa.length * 32; Z += H) {
            ab += String.fromCharCode((aa[Z >> 5] >>> (Z % 32)) & Y)
        }
        return ab
    }
    function A(aa) {
        var Z = x ? "0123456789ABCDEF" : "0123456789abcdef";
        var ab = "";
        for (var Y = 0; Y < aa.length * 4; Y++) {
            ab += Z.charAt((aa[Y >> 2] >> ((Y % 4) * 8 + 4)) & 15) + Z.charAt((aa[Y >> 2] >> ((Y % 4) * 8)) & 15)
        }
        return ab
    }
    function i(ab) {
        var aa = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\n
        var ad = "";
        for (var Z = 0; Z < ab.length * 4; Z += 3) {
            var ac = (((ab[Z >> 2] >> 8 * (Z % 4)) & 255) << 16) | (((ab[Z + 1 >> 2] >> 8 * ((Z + 1) % 4)) & 255) << 8) | ((ab[Z + 2 >> 2] >> 8 * ((Z + 2) % 4)) & 255);
            for (var Y = 0; Y < 4; Y++) {
                if (Z * 8 + Y * 6 > ab.length * 32) {
                    ad += D
                } else {
                    ad += aa.charAt((ac >> 6 * (3 - Y)) & 63)
                }
            }
        }
        return ad
    }

然后我把他复制到常量里 用脚本组件执行加密步骤 也就是:N(N(N(password))+code)=密码. 却返回了空文本,这是为什么呐。 虚心求指教{:soso__8961432591078930798_3:}

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

结帖率:100% (3/3)
发表于 2012-7-27 20:35:11 | 显示全部楼层   湖南省长沙市
迅雷的登录还是?
回复 支持 反对

使用道具 举报

结帖率:100% (5/5)
 楼主| 发表于 2012-7-27 20:37:07 | 显示全部楼层   广东省珠海市
迅雷云点播的那个登录,也就是迅雷的啦
回复 支持 反对

使用道具 举报

结帖率:100% (3/3)
发表于 2012-7-27 20:43:31 | 显示全部楼层   湖南省长沙市
迅雷登录的貌似教程里有!这个加密 输出的错误信息是Error: 语法错误, function N(Y){return A(z(C(Y),Y.length*H))}function b(Y){return i(z(C(Y),Y.length*H))}function j(Y){return t(z(C(Y),Y.length*H))}function c(Y,Z){return A(X(Y,Z))}function n(Y,Z){return i(X(Y,Z))}function v(Y,Z){return t(X(Y,Z))}function e(
回复 支持 反对

使用道具 举报

结帖率:60% (3/5)
发表于 2012-7-27 20:49:05 | 显示全部楼层   上海市上海市
虽然只是简单md5算法,但是粗心的朋友可能没发现,少了两个变量的初始赋值
var x = 0;var H = 8;


在js文件头部可以找到

以下是完整的N算法(其实就是MD5)

N算法.zip (1.97 KB, 下载次数: 53)
回复 支持 反对

使用道具 举报

结帖率:50% (2/4)
发表于 2013-6-17 16:45:05 | 显示全部楼层   福建省福州市
谢谢,下载了看看
回复 支持 反对

使用道具 举报

发表于 2013-12-11 15:23:45 | 显示全部楼层   河南省周口市
坐看小白鼠测试
回复 支持 反对

使用道具 举报

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

本版积分规则 致发广告者

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

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

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