开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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


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

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

查看: 2253|回复: 7
收起左侧

[js/PHP求助] js大神们快来帮忙修改代码啦- -

[复制链接]
结帖率:60% (12/20)
发表于 2013-5-4 12:00:41 | 显示全部楼层 |阅读模式   山东省临沂市
本帖最后由 挥剑い为红颜 于 2013-5-4 12:29 编辑

下面是115网盘最新的js加密算法
可以清晰的看出加密方式是:
加密结果=sha1(sha1(sha1(密码)+账号)+验证码)

但是里面使用了 window函数   使用发条js-ed调试  会发现没有函数可以调用
求指点  求修改..
  1. /**
  2. * User: linweilong(TGL)
  3. * Date: 2013-04-18 13:26
  4. */
  5. ;
  6. (function() {
  7. var common;
  8. if (!window["Common"]) {
  9. common = window["Common"] = {};
  10. } else {
  11. common = window["Common"];
  12. }
  13. if (!common.passportUrl) {
  14. common.passportUrl = "";
  15. }

  16. /**
  17. * 文本框有内容的时候隐藏对应的label
  18. */
  19. ;
  20. (function() {
  21. var doms = [], labs = [], timer = null;

  22. /**
  23. * 文本框有内容的时候隐藏对应的label
  24. * @param domIds jquery对象 #id数组 #id逗号分隔
  25. */
  26. common.bindLabelHide = function(domIds, labLs) {
  27. var tmp = domIds.jquery ? domIds : domIds.join ? $$$$$$$$$$$$$$$$(domIds.join(",")) : $$$$$$$$$$$$$$$$(domIds);

  28. if (labLs) {
  29. labLs = labLs.jquery ? labLs : labLs.join ? $$$$$$$$$$$$$$$$(labLs.join(",")) : $$$$$$$$$$$$$$$$(labLs);
  30. for (var i = 0, c = tmp.length; i < c; i++) {
  31. doms.push(tmp.eq(i));
  32. labs.push(labLs.eq(i));
  33. }
  34. } else {
  35. tmp.each(function() {
  36. var lab = $$$$$$$$$$$$$$$$("[for=" + this.id + "]");
  37. if (lab.length > 0)
  38. {
  39. doms.push($$$$$$$$$$$$$$$$(this));
  40. labs.push(lab);
  41. }
  42. });
  43. }

  44. if (!timer) {
  45. timer = setInterval(function() {
  46. for (var i = 0, c = doms.length; i < c; i++)
  47. {
  48. try {
  49. labs[i][doms[i].val() == "" ? "show" : "hide"]();
  50. } catch (e) {

  51. }
  52. }
  53. }, 50);
  54. }

  55. }
  56. }());

  57. /**
  58. * sha1相关
  59. */
  60. ;
  61. (function() {

  62. var sha1 = common.sha1 = function(str, raw)
  63. {
  64. var hexcase = 0;
  65. var chrsz = 8;
  66. str = utf16to8(str);

  67. function utf16to8(str)
  68. {
  69. var out, i, len, c;

  70. out = "";
  71. len = str.length;
  72. for (i = 0; i < len; i++)
  73. {
  74. c = str.charCodeAt(i);
  75. if ((c >= 0x0001) && (c <= 0x007F))
  76. {
  77. out += str.charAt(i);
  78. }
  79. else if (c > 0x07FF)
  80. {
  81. out += String.fromCharCode(0xE0 | ((c >> 12) & 0x0F));
  82. out += String.fromCharCode(0x80 | ((c >> 6) & 0x3F));
  83. out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));
  84. }
  85. else
  86. {
  87. out += String.fromCharCode(0xC0 | ((c >> 6) & 0x1F));
  88. out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));
  89. }
  90. }
  91. return out;
  92. }

  93. function hex_sha1(s)
  94. {
  95. return binb2hex(core_sha1(str2binb(s), s.length * chrsz));
  96. }

  97. function str_sha1(s)
  98. {
  99. return binb2str(core_sha1(str2binb(s), s.length * chrsz));
  100. }

  101. function binb2hex(binarray)
  102. {
  103. var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef";
  104. var str = "";
  105. for (var i = 0; i < binarray.length * 4; i++)
  106. {
  107. str += hex_tab.charAt((binarray[i >> 2] >> ((3 - i % 4) * 8 + 4)) & 0xF) +
  108. hex_tab.charAt((binarray[i >> 2] >> ((3 - i % 4) * 8)) & 0xF);
  109. }
  110. return str;
  111. }

  112. function binb2str(bin)
  113. {
  114. var str = "";
  115. var mask = (1 << chrsz) - 1;
  116. for (var i = 0; i < bin.length * 32; i += chrsz)
  117. str += String.fromCharCode((bin[i >> 5] >>> (32 - chrsz - i % 32)) & mask);
  118. return str;
  119. }

  120. function str2binb(str)
  121. {
  122. var bin = Array();
  123. var mask = (1 << chrsz) - 1;
  124. for (var i = 0; i < str.length * chrsz; i += chrsz)
  125. bin[i >> 5] |= (str.charCodeAt(i / chrsz) & mask) << (32 - chrsz - i % 32);
  126. return bin;
  127. }

  128. function safe_add(x, y)
  129. {
  130. var lsw = (x & 0xFFFF) + (y & 0xFFFF);
  131. var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
  132. return (msw << 16) | (lsw & 0xFFFF);
  133. }

  134. function rol(num, cnt)
  135. {
  136. return (num << cnt) | (num >>> (32 - cnt));
  137. }

  138. function sha1_ft(t, b, c, d)
  139. {
  140. if (t < 20)
  141. return (b & c) | ((~b) & d);
  142. if (t < 40)
  143. return b ^ c ^ d;
  144. if (t < 60)
  145. return (b & c) | (b & d) | (c & d);
  146. return b ^ c ^ d;
  147. }

  148. function sha1_kt(t)
  149. {
  150. return (t < 20) ? 1518500249 : (t < 40) ? 1859775393 : (t < 60) ? -1894007588 : -899497514;
  151. }

  152. function core_sha1(x, len)
  153. {
  154. x[len >> 5] |= 0x80 << (24 - len % 32);
  155. x[((len + 64 >> 9) << 4) + 15] = len;

  156. var w = Array(80);
  157. var a = 1732584193;
  158. var b = -271733879;
  159. var c = -1732584194;
  160. var d = 271733878;
  161. var e = -1009589776;

  162. for (var i = 0; i < x.length; i += 16)
  163. {
  164. var olda = a;
  165. var oldb = b;
  166. var oldc = c;
  167. var oldd = d;
  168. var olde = e;

  169. for (var j = 0; j < 80; j++)
  170. {
  171. if (j < 16)
  172. w[j] = x[i + j];
  173. else
  174. w[j] = rol(w[j - 3] ^ w[j - 8] ^ w[j - 14] ^ w[j - 16], 1);
  175. var t = safe_add(safe_add(rol(a, 5), sha1_ft(j, b, c, d)), safe_add(safe_add(e, w[j]), sha1_kt(j)));
  176. e = d;
  177. d = c;
  178. c = rol(b, 30);
  179. b = a;
  180. a = t;
  181. }

  182. a = safe_add(a, olda);
  183. b = safe_add(b, oldb);
  184. c = safe_add(c, oldc);
  185. d = safe_add(d, oldd);
  186. e = safe_add(e, olde);
  187. }
  188. return Array(a, b, c, d, e);
  189. }

  190. if (raw == true)
  191. {
  192. return str_sha1(str);
  193. }
  194. else
  195. {
  196. return hex_sha1(str);
  197. }
  198. }

  199. common.sha1_pwd = function(pwd, account, vcode) {

  200. //return sha1( sha1( hexchar2bin(sha1(pwd))+hexchar2bin(sha1(account)) ) + vcode.toUpperCase());
  201. return sha1(sha1(sha1(pwd) + sha1(account)) + vcode.toUpperCase());
  202. }
  203. }());
复制代码
发表于 2013-5-27 21:41:37 | 显示全部楼层   北京市北京市
本帖最后由 jixun66 于 2013-5-27 21:43 编辑
  1. pdata.login["ssoln"] = acount; // 用户名
  2. pdata.login["ssopw"] = Common.sha1_pwd($.trim(pwd), $.trim(acount),pdata.login.ssoext); // 密码算法
  3. pdata.login["ssovcode"] = pdata.login.ssoext; // 验证码
  4. pdata.login["time"] = remember?1:0; // 记住登陆信息
复制代码
Common.sha1_pwd:
  1. function (pwd,account,vcode){
  2.     //return sha1( sha1( hexchar2bin(sha1(pwd))+hexchar2bin(sha1(account)) ) + vcode.toUpperCase());
  3.     return sha1( sha1(sha1(pwd)+sha1(account) ) + vcode.toUpperCase());
  4. }
复制代码
> sha1 (sha1(sha1(密码)+sha1(登录用户名)) + 大写验证码)
POST到: http:// passport.115.com/?ct=login&ac=ajax&is_ssl=1, 返回类型为 json
回复 支持 反对

使用道具 举报

结帖率:100% (5/5)
发表于 2013-5-4 13:22:55 | 显示全部楼层   广东省珠海市
写个改写就OK了不多说嘿嘿
回复 支持 反对

使用道具 举报

结帖率:89% (8/9)
发表于 2013-5-4 12:51:14 | 显示全部楼层   河南省信阳市
你昨夜爽了多少次?

点评

继续你的js去吧,还强攻   河南省信阳市  发表于 2013-5-4 12:56
嘿嘿   山东省临沂市  发表于 2013-5-4 12:55
我是强攻.你是受.   山东省临沂市  发表于 2013-5-4 12:54
回复 支持 反对

使用道具 举报

结帖率:83% (5/6)
发表于 2013-5-4 12:44:54 | 显示全部楼层   浙江省温州市
另代你这代码复制的有点多了
* sha1相关
上面的都可以去掉
回复 支持 反对

使用道具 举报

结帖率:83% (5/6)
发表于 2013-5-4 12:43:18 | 显示全部楼层   浙江省温州市
但是方法没变啊。
无非就是
function sha1 (str, raw)
function ha1_pwd (pwd, account, vcode)
这样搞两下就OK了。。。

点评

我也看到了,但是JS-ED里面 显示没有可以调用的函数   山东省临沂市  发表于 2013-5-4 12:52
回复 支持 反对

使用道具 举报

结帖率:83% (5/6)
发表于 2013-5-4 12:34:14 | 显示全部楼层   浙江省温州市
《JavaScript专题》第12课:JavaScript-新版115网盘登录分析详解(2013-04-18)
http://bbs.125.la/thread-13645247-1-1.html

点评

教程我看过了,加密算法又变了,js代码也都变了不少   山东省临沂市  发表于 2013-5-4 12:35
回复 支持 反对

使用道具 举报

结帖率:0% (0/3)
发表于 2013-5-4 12:12:30 | 显示全部楼层   辽宁省沈阳市
太深奥了,学习一下,
回复 支持 反对

使用道具 举报

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

本版积分规则 致发广告者

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

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

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