TC官方合作论坛

 找回密码
 立即注册
查看: 1288|回复: 7
打印 上一主题 下一主题

[问题] 关于百度本地加密的JS代码,为什么我每次调用都返回空啊

[复制链接]
跳转到指定楼层
楼主
发表于 2014-8-8 17:45:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上加入TC

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
代码如下:


回复

使用道具 举报

沙发
 楼主| 发表于 2014-8-8 17:46:38 | 只看该作者
  1. !(function (a) {
  2.     function b(a) {
  3.         var b = e, c = b.biDivideByRadixPower(a, this.k - 1);
  4.         for(c = b.biMultiply(c, this.mu) , c = b.biDivideByRadixPower(c, this.k + 1) , a = b.biModuloByRadixPower(a, this.k + 1) , c = b.biMultiply(c, this.modulus) , c = b.biModuloByRadixPower(c, this.k + 1) , a = b.biSubtract(a, c) , a.isNeg && (a = b.biAdd(a, this.bkplus1)) , c = b.biCompare(a, this.modulus) >= 0; c; ) {
  5.             a = b.biSubtract(a, this.modulus) , c = b.biCompare(a, this.modulus) >= 0;
  6.         }
  7.         return a;
  8.     }
  9.     function c(a, b) {
  10.         return this.modulo(e.biMultiply(a, b));
  11.     }
  12.     function d(a, b) {
  13.         var c = new l();
  14.         c.digits[0] = 1;
  15.         for(var d = a, f = b; 0 != (1 & f.digits[0]) && (c = this.multiplyMod(c, d)) , f = e.biShiftRight(f, 1) , 0 != f.digits[0] || 0 != e.biHighIndex(f); ) {
  16.             d = this.multiplyMod(d, d);
  17.         }
  18.         return c;
  19.     }
  20.     if("undefined" == typeof a.RSAUtils) {
  21.         var e = a.RSAUtils = {
  22.         };
  23.     }
  24.     var f, g, h, k, l = a.BigInt = function (a) {
  25.         this.digits = "boolean" == typeof a && 1 == a ? null : g.slice(0) , this.isNeg = !1;
  26.     };
  27.     e.setMaxDigits = function (a) {
  28.         for(f = a , g = Array(f) , a = 0; a < g.length; a++) {
  29.             g[a] = 0;
  30.         }
  31.         h = new l() , k = new l() , k.digits[0] = 1;
  32.     } , e.setMaxDigits(20) , e.biFromNumber = function (a) {
  33.         var b = new l();
  34.         b.isNeg = 0 > a , a = Math.abs(a);
  35.         for(var c = 0; a > 0; ) {
  36.             b.digits[c++] = 65535 & a , a = Math.floor(a / 65536);
  37.         }
  38.         return b;
  39.     };
  40.     var m = e.biFromNumber(1e15);
  41.     e.biFromDecimal = function (a) {
  42.         for(var d, b = "-" == a.charAt(0), c = b ? 1 : 0; c < a.length && "0" == a.charAt(c); ) {
  43.             ++c;
  44.         }
  45.         if(c == a.length) {
  46.             d = new l();
  47.         } else {
  48.             var f = (a.length - c) % 15;
  49.             for(0 == f && (f = 15) , d = e.biFromNumber(Number(a.substr(c, f))) , c += f; c < a.length; ) {
  50.                 d = e.biAdd(e.biMultiply(d, m), e.biFromNumber(Number(a.substr(c, 15)))) , c += 15;
  51.             }
  52.             d.isNeg = b;
  53.         }
  54.         return d;
  55.     } , e.biCopy = function (a) {
  56.         var b = new l(!0);
  57.         return b.digits = a.digits.slice(0) , b.isNeg = a.isNeg , b;
  58.     } , e.reverseStr = function (a) {
  59.         for(var b = "", c = a.length - 1; c > -1; --c) {
  60.             b += a.charAt(c);
  61.         }
  62.         return b;
  63.     };
  64.     var n = [
  65.         "0",
  66.         "1",
  67.         "2",
  68.         "3",
  69.         "4",
  70.         "5",
  71.         "6",
  72.         "7",
  73.         "8",
  74.         "9",
  75.         "a",
  76.         "b",
  77.         "c",
  78.         "d",
  79.         "e",
  80.         "f",
  81.         "g",
  82.         "h",
  83.         "i",
  84.         "j",
  85.         "k",
  86.         "l",
  87.         "m",
  88.         "n",
  89.         "o",
  90.         "p",
  91.         "q",
  92.         "r",
  93.         "s",
  94.         "t",
  95.         "u",
  96.         "v",
  97.         "w",
  98.         "x",
  99.         "y",
  100.         "z"
  101.     ];
  102.     e.biToString = function (a, b) {
  103.         var c = new l();
  104.         c.digits[0] = b;
  105.         for(var d = e.biDivideModulo(a, c), f = n[d[1].digits[0]]; 1 == e.biCompare(d[0], h); ) {
  106.             d = e.biDivideModulo(d[0], c) , digit = d[1].digits[0] , f += n[d[1].digits[0]];
  107.         }
  108.         return (a.isNeg ? "-" : "") + e.reverseStr(f);
  109.     } , e.biToDecimal = function (a) {
  110.         var b = new l();
  111.         b.digits[0] = 10;
  112.         for(var c = e.biDivideModulo(a, b), d = String(c[1].digits[0]); 1 == e.biCompare(c[0], h); ) {
  113.             c = e.biDivideModulo(c[0], b) , d += String(c[1].digits[0]);
  114.         }
  115.         return (a.isNeg ? "-" : "") + e.reverseStr(d);
  116.     };
  117.     var o = [
  118.         "0",
  119.         "1",
  120.         "2",
  121.         "3",
  122.         "4",
  123.         "5",
  124.         "6",
  125.         "7",
  126.         "8",
  127.         "9",
  128.         "a",
  129.         "b",
  130.         "c",
  131.         "d",
  132.         "e",
  133.         "f"
  134.     ];
  135.     e.digitToHex = function (a) {
  136.         var b = "";
  137.         for(i = 0; 4 > i; ++i) {
  138.             b += o[15 & a] , a >>>= 4;
  139.         }
  140.         return e.reverseStr(b);
  141.     } , e.biToHex = function (a) {
  142.         var b = "";
  143.         e.biHighIndex(a);
  144.         for(var c = e.biHighIndex(a); c > -1; --c) {
  145.             b += e.digitToHex(a.digits[c]);
  146.         }
  147.         return b;
  148.     } , e.charToHex = function (a) {
  149.         return a >= 48 && 57 >= a ? a - 48 : a >= 65 && 90 >= a ? 10 + a - 65 : a >= 97 && 122 >= a ? 10 + a - 97 : 0;
  150.     } , e.hexToDigit = function (a) {
  151.         for(var b = 0, c = Math.min(a.length, 4), d = 0; c > d; ++d) {
  152.             b <<= 4 , b |= e.charToHex(a.charCodeAt(d));
  153.         }
  154.         return b;
  155.     } , e.biFromHex = function (a) {
  156.         for(var b = new l(), c = a.length, d = 0; c > 0; c -= 4 , ++d) {
  157.             b.digits[d] = e.hexToDigit(a.substr(Math.max(c - 4, 0), Math.min(c, 4)));
  158.         }
  159.         return b;
  160.     } , e.biFromString = function (a, b) {
  161.         var c = "-" == a.charAt(0), d = c ? 1 : 0, f = new l(), g = new l();
  162.         g.digits[0] = 1;
  163.         for(var h = a.length - 1; h >= d; h--) {
  164.             var i = a.charCodeAt(h);
  165.             i = e.charToHex(i) , i = e.biMultiplyDigit(g, i) , f = e.biAdd(f, i) , g = e.biMultiplyDigit(g, b);
  166.         }
  167.         return f.isNeg = c , f;
  168.     } , e.biDump = function (a) {
  169.         return (a.isNeg ? "-" : "") + a.digits.join(" ");
  170.     } , e.biAdd = function (a, b) {
  171.         var c;
  172.         if(a.isNeg != b.isNeg) {
  173.             b.isNeg = !b.isNeg , c = e.biSubtract(a, b) , b.isNeg = !b.isNeg;
  174.         } else {
  175.             c = new l();
  176.             for(var d = 0, f = 0; f < a.digits.length; ++f) {
  177.                 d = a.digits[f] + b.digits[f] + d , c.digits[f] = d % 65536 , d = Number(d >= 65536);
  178.             }
  179.             c.isNeg = a.isNeg;
  180.         }
  181.         return c;
  182.     } , e.biSubtract = function (a, b) {
  183.         var c;
  184.         if(a.isNeg != b.isNeg) {
  185.             b.isNeg = !b.isNeg , c = e.biAdd(a, b) , b.isNeg = !b.isNeg;
  186.         } else {
  187.             c = new l();
  188.             for(var d, f = d = 0; f < a.digits.length; ++f) {
  189.                 d = a.digits[f] - b.digits[f] + d , c.digits[f] = d % 65536 , c.digits[f] < 0 && (c.digits[f] += 65536) , d = 0 - Number(0 > d);
  190.             }
  191.             if(-1 == d) {
  192.                 for(f = d = 0; f < a.digits.length; ++f) {
  193.                     d = 0 - c.digits[f] + d , c.digits[f] = d % 65536 , c.digits[f] < 0 && (c.digits[f] += 65536) , d = 0 - Number(0 > d);
  194.                 }
  195.                 c.isNeg = !a.isNeg;
  196.             } else {
  197.                 c.isNeg = a.isNeg;
  198.             }
  199.         }
  200.         return c;
  201.     } , e.biHighIndex = function (a) {
  202.         for(var b = a.digits.length - 1; b > 0 && 0 == a.digits[b]; ) {
  203.             --b;
  204.         }
  205.         return b;
  206.     } , e.biNumBits = function (a) {
  207.         var b = e.biHighIndex(a);
  208.         a = a.digits[b] , b = 16 * (b + 1);
  209.         var c;
  210.         for(c = b; c > b - 16 && 0 == (32768 & a); --c) {
  211.             a <<= 1;
  212.         }
  213.         return c;
  214.     } , e.biMultiply = function (a, b) {
  215.         for(var d, h, c = new l(), f = e.biHighIndex(a), g = e.biHighIndex(b), i = 0; g >= i; ++i) {
  216.             for(d = 0 , h = i , j = 0; f >= j; ++j , ++h) {
  217.                 d = c.digits[h] + a.digits[j] * b.digits[i] + d , c.digits[h] = 65535 & d , d >>>= 16;
  218.             }
  219.             c.digits[i + f + 1] = d;
  220.         }
  221.         return c.isNeg = a.isNeg != b.isNeg , c;
  222.     } , e.biMultiplyDigit = function (a, b) {
  223.         var c, d;
  224.         result = new l() , c = e.biHighIndex(a);
  225.         for(var f = d = 0; c >= f; ++f) {
  226.             d = result.digits[f] + a.digits[f] * b + d , result.digits[f] = 65535 & d , d >>>= 16;
  227.         }
  228.         return result.digits[1 + c] = d , result;
  229.     } , e.arrayCopy = function (a, b, c, d, e) {
  230.         for(e = Math.min(b + e, a.length) , b = b , d = d; e > b; ++b , ++d) {
  231.             c[d] = a[b];
  232.         }
  233.     };
  234.     var p = [
  235.         0,
  236.         32768,
  237.         49152,
  238.         57344,
  239.         61440,
  240.         63488,
  241.         64512,
  242.         65024,
  243.         65280,
  244.         65408,
  245.         65472,
  246.         65504,
  247.         65520,
  248.         65528,
  249.         65532,
  250.         65534,
  251.         65535
  252.     ];
  253.     e.biShiftLeft = function (a, b) {
  254.         var c = Math.floor(b / 16), d = new l();
  255.         e.arrayCopy(a.digits, 0, d.digits, c, d.digits.length - c) , c = b % 16;
  256.         for(var f = 16 - c, g = d.digits.length - 1, h = g - 1; g > 0; --g , --h) {
  257.             d.digits[g] = 65535 & d.digits[g] << c | (d.digits[h] & p[c]) >>> f;
  258.         }
  259.         return d.digits[0] = 65535 & d.digits[g] << c , d.isNeg = a.isNeg , d;
  260.     };
  261.     var q = [
  262.         0,
  263.         1,
  264.         3,
  265.         7,
  266.         15,
  267.         31,
  268.         63,
  269.         127,
  270.         255,
  271.         511,
  272.         1023,
  273.         2047,
  274.         4095,
  275.         8191,
  276.         16383,
  277.         32767,
  278.         65535
  279.     ];
  280.     e.biShiftRight = function (a, b) {
  281.         var c = Math.floor(b / 16), d = new l();
  282.         e.arrayCopy(a.digits, c, d.digits, 0, a.digits.length - c) , c = b % 16;
  283.         for(var f = 16 - c, g = 0, h = g + 1; g < d.digits.length - 1; ++g , ++h) {
  284.             d.digits[g] = d.digits[g] >>> c | (d.digits[h] & q[c]) << f;
  285.         }
  286.         return d.digits[d.digits.length - 1] >>>= c , d.isNeg = a.isNeg , d;
  287.     } , e.biMultiplyByRadixPower = function (a, b) {
  288.         var c = new l();
  289.         return e.arrayCopy(a.digits, 0, c.digits, b, c.digits.length - b) , c;
  290.     } , e.biDivideByRadixPower = function (a, b) {
  291.         var c = new l();
  292.         return e.arrayCopy(a.digits, b, c.digits, 0, c.digits.length - b) , c;
  293.     } , e.biModuloByRadixPower = function (a, b) {
  294.         var c = new l();
  295.         return e.arrayCopy(a.digits, 0, c.digits, 0, b) , c;
  296.     } , e.biCompare = function (a, b) {
  297.         if(a.isNeg != b.isNeg) {
  298.             return 1 - 2 * Number(a.isNeg);
  299.         }
  300.         for(var c = a.digits.length - 1; c >= 0; --c) {
  301.             if(a.digits[c] != b.digits[c]) {
  302.                 return a.isNeg ? 1 - 2 * Number(a.digits[c] > b.digits[c]) : 1 - 2 * Number(a.digits[c] < b.digits[c]);
  303.             }
  304.         }
  305.         return 0;
  306.     } , e.biDivideModulo = function (a, b) {
  307.         var g, h, c = e.biNumBits(a), d = e.biNumBits(b), f = b.isNeg;
  308.         if(d > c) {
  309.             return a.isNeg ? (g = e.biCopy(k) , g.isNeg = !b.isNeg , a.isNeg = !1 , b.isNeg = !1 , h = biSubtract(b, a) , a.isNeg = !0 , b.isNeg = f) : (g = new l() , h = e.biCopy(a)) , [
  310.                 g,
  311.                 h
  312.             ];
  313.         }
  314.         g = new l() , h = a;
  315.         for(var i = Math.ceil(d / 16) - 1, j = 0; b.digits[i] < 32768; ) {
  316.             b = e.biShiftLeft(b, 1) , ++j , ++d , i = Math.ceil(d / 16) - 1;
  317.         }
  318.         for(h = e.biShiftLeft(h, j) , c += j , c = Math.ceil(c / 16) - 1 , d = e.biMultiplyByRadixPower(b, c - i); -1 != e.biCompare(h, d); ) {
  319.             ++g.digits[c - i] , h = e.biSubtract(h, d);
  320.         }
  321.         for(c = c; c > i; --c) {
  322.             d = c >= h.digits.length ? 0 : h.digits[c];
  323.             var m = c - 1 >= h.digits.length ? 0 : h.digits[c - 1], n = c - 2 >= h.digits.length ? 0 : h.digits[c - 2], o = i >= b.digits.length ? 0 : b.digits[i], p = i - 1 >= b.digits.length ? 0 : b.digits[i - 1];
  324.             g.digits[c - i - 1] = d == o ? 65535 : Math.floor((65536 * d + m) / o);
  325.             for(var q = g.digits[c - i - 1] * (65536 * o + p), r = 4294967296 * d + (65536 * m + n); q > r; ) {
  326.                 --g.digits[c - i - 1] , q = g.digits[c - i - 1] * (65536 * o | p) , r = 65536 * 65536 * d + (65536 * m + n);
  327.             }
  328.             d = e.biMultiplyByRadixPower(b, c - i - 1) , h = e.biSubtract(h, e.biMultiplyDigit(d, g.digits[c - i - 1])) , h.isNeg && (h = e.biAdd(h, d) , --g.digits[c - i - 1]);
  329.         }
  330.         return h = e.biShiftRight(h, j) , g.isNeg = a.isNeg != f , a.isNeg && (g = f ? e.biAdd(g, k) : e.biSubtract(g, k) , b = e.biShiftRight(b, j) , h = e.biSubtract(b, h)) , 0 == h.digits[0] && 0 == e.biHighIndex(h) && (h.isNeg = !1) , [
  331.             g,
  332.             h
  333.         ];
  334.     } , e.biDivide = function (a, b) {
  335.         return e.biDivideModulo(a, b)[0];
  336.     } , e.biModulo = function (a, b) {
  337.         return e.biDivideModulo(a, b)[1];
  338.     } , e.biMultiplyMod = function (a, b, c) {
  339.         return e.biModulo(e.biMultiply(a, b), c);
  340.     } , e.biPow = function (a, b) {
  341.         for(var c = k, d = a; 0 != (1 & b) && (c = e.biMultiply(c, d)) , b >>= 1 , 0 != b; ) {
  342.             d = e.biMultiply(d, d);
  343.         }
  344.         return c;
  345.     } , e.biPowMod = function (a, b, c) {
  346.         var d = k;
  347.         for(a = a , b = b; 0 != (1 & b.digits[0]) && (d = e.biMultiplyMod(d, a, c)) , b = e.biShiftRight(b, 1) , 0 != b.digits[0] || 0 != e.biHighIndex(b); ) {
  348.             a = e.biMultiplyMod(a, a, c);
  349.         }
  350.         return d;
  351.     } , a.BarrettMu = function (a) {
  352.         this.modulus = e.biCopy(a) , this.k = e.biHighIndex(this.modulus) + 1 , a = new l() , a.digits[2 * this.k] = 1 , this.mu = e.biDivide(a, this.modulus) , this.bkplus1 = new l() , this.bkplus1.digits[this.k + 1] = 1 , this.modulo = b , this.multiplyMod = c , this.powMod = d;
  353.     };
  354.     var r = function (b, c, d) {
  355.         var f = e;
  356.         this.e = f.biFromHex(b) , this.d = f.biFromHex(c) , this.m = f.biFromHex(d) , this.chunkSize = 2 * f.biHighIndex(this.m) , this.radix = 16 , this.barrett = new a.BarrettMu(this.m);
  357.     };
  358.     e.getKeyPair = function (a, b, c) {
  359.         return new r(a, b, c);
  360.     } , "undefined" == typeof a.twoDigit && (a.twoDigit = function (a) {
  361.         return (10 > a ? "0" : "") + String(a);
  362.     }) , e.encryptedString = function (a, b) {
  363.         for(var c = [], d = b.length, f = 0; d > f; ) {
  364.             c[f] = b.charCodeAt(f) , f++;
  365.         }
  366.         for(; 0 != c.length % a.chunkSize; ) {
  367.             c[f++] = 0;
  368.         }
  369.         d = c.length;
  370.         var h, i, j, g = "";
  371.         for(f = 0; d > f; f += a.chunkSize) {
  372.             for(j = new l() , h = 0 , i = f; i < f + a.chunkSize; ++h) {
  373.                 j.digits[h] = c[i++] , j.digits[h] += c[i++] << 8;
  374.             }
  375.             h = a.barrett.powMod(j, a.e) , h = 16 == a.radix ? e.biToHex(h) : e.biToString(h, a.radix) , g += h + " ";
  376.         }
  377.         return g.substring(0, g.length - 1);
  378.     } , e.decryptedString = function (a, b) {
  379.         var f, g, h, c = b.split(" "), d = "";
  380.         for(f = 0; f < c.length; ++f) {
  381.             for(g = 16 == a.radix ? e.biFromHex(c[f]) : e.biFromString(c[f], a.radix) , h = a.barrett.powMod(g, a.d) , g = 0; g <= e.biHighIndex(h); ++g) {
  382.                 d += String.fromCharCode(255 & h.digits[g], h.digits[g] >> 8);
  383.             }
  384.         }
  385.         return 0 == d.charCodeAt(d.length - 1) && (d = d.substring(0, d.length - 1)) , d;
  386.     } , e.setMaxDigits(130);
  387. })(window);

  388.     function pwd(exponent, modulus,password){
  389.         var key = RSAUtils.getKeyPair(exponent, "", modulus);
  390.         var encryptPassword = RSAUtils.encryptedString(key, password);        
  391.         return encryptPassword;
  392.     };
复制代码
回复 支持 反对

使用道具 举报

板凳
发表于 2014-8-8 18:25:31 | 只看该作者
.。。。你怎么调用的
回复 支持 反对

使用道具 举报

地板
 楼主| 发表于 2014-8-8 19:10:33 | 只看该作者
b44412545 发表于 2014-8-8 18:25
.。。。你怎么调用的
  1.         callfun="pwd(\"010001\",\"00a0b4f194a2e4b356708c0334bac667515f5267e159a804bcf3dc48a43aaac7de19db6f3b355adce3628582aa6d486d57e7fedd20634446b99dcb52871f71700f5f15376084f6de37316bff6e2f0f636ee3002a24c5148f67c85923af07a96e028ae686f6d040b5acca8014f701b2c8b425ead99a5f89a3e270d80db86341eee3\",\"154639702\");"
  2.         暗文=winhttp.runScriptCode(jscode,callfun,"JavaScript")
复制代码

我觉得是js源码保存的应该有问题
回复 支持 反对

使用道具 举报

5#
 楼主| 发表于 2014-8-9 16:23:13 | 只看该作者
本帖最后由 154639702 于 2014-8-9 19:22 编辑

主要问题是window这个对象的问题,window对象只有在浏览器中才会生成,Scriptcontrol的JS编译器不会生成的。
解决方法去掉window对象,自己摸拟定一个对象:
去掉
!function(a){
}(window)外框
然后在文件开头定义对象
var a={};
然后把自己写的的函数改为
    function pwd(exponent, modulus,password){
        var key = e.getKeyPair(exponent, "", modulus);
        var encryptPassword = e.encryptedString(key, password);        
        return encryptPassword;
    };


回复 支持 反对

使用道具 举报

6#
发表于 2014-8-9 19:23:16 | 只看该作者


看不懂 - -
回复 支持 反对

使用道具 举报

7#
 楼主| 发表于 2014-8-9 20:23:34 | 只看该作者

你也在弄post登陆吗
回复 支持 反对

使用道具 举报

8#
发表于 2014-12-6 18:18:12 | 只看该作者
好厉害!~~ 问了很多人都不懂
回复 支持 反对

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18043773号

GMT+8, 2025-9-24 01:37 , Processed in 0.145715 second(s), 23 queries .

Powered by 海安天坑软件科技有限公司

© 2001-2013 Comsenz Inc.

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