python execjs window_python execjs 调用匿名函数的js报错,在浏览器上正常返回。execjs._exceptions.ProgramError: TypeError:...

(function($w) {

if(typeof $w.RSAUtils === 'undefinee W x R 5 ed')

var RSAUtils = $w.RSAUtils{ ` = a = {};

var biRadixBase = 2;

var biRadixBits = 16;

var bitsPerDigit = biRad? 2 M | ) d KixBits;

var biRax P , z B o L bdix = 1 << 16; // = 2^F | r b W M 216 = 65536

var biHalfRadix = biRadix >>> 1;

var biRadixSquared = biRadiy - b Jx * biRadix;

var maxDigitVal = biRadix - 1A C a s;

var maxM | - u sInteger =i O ! G t @ 9999999999999998;% B Y , R b #

//maxDigits:

//Change this to accommodate your larg& w 2 test number size. Use setMaxDigits()

//to change it!

//

//In general, if you're working with numbers of size| : T N bits, you'll nM D a x q 1 2eed 2*N

//bits of storage. Each digit holds 16 bits. So, a 1024-bit key will need

//y $ 9 w * w d 2

//1024 * 2 / 16 = 128 digits of storage.

//

var maxDigits;

var ZERO_ARRAY;

var bigZero, bigOne;

var BigInt = $w.BigInt = function(flag) {

if (typeof flag == "boolean" &amt ` wp;& flag ==5 B ? & q true) {

this.digits = null;

} el9 = E m Z z :se {

this.digits = ZERO_ARRAY.sl| Y qice(0);

}

thiS j . Is.isNeg = false;

};

RSAUtils.setMaxDigits = function(valuk I *e) {

maxDigit- c f o 1 zs = value;

ZER- f 6 k 7O_ARRAY = new Array(maxDi) * Dgits);

for (var iza = 0; iza < ZERO_ARRAY.length; iza++) ZERO_v G J m | ? W = 9ARRAY[iza] = 0;

bigZero = new BigInt();

bigOne = new BigInt();

bigOne.dr 6 R 0 Rigits[0] = 1;

};

RSAUtilsM f u p P 0 c t.setMaxDigits(20);

//The maximum number of di- N ! Q }gitX u J k G k 3s in baZ - pse 10 you can convert to an

//integer without JavaQ @ [SO : @ ! A } Script throwing up on you.

var dl { 5 b 4 Q l 9 .pl10 = 15;

RSAUtils.biFromNumber = function(i) {

var rey e , y Y rsult = new BigInt();

resT x ^ V Nult.isNeg = i < 0;

i = Math.abs(i);

var j = 0;

while (i > 0) {

result.digits[j++] = i & maxDigitVal;

i = Math.floor(i / biRadix);

}

re! s - l { 0 p 8turn result;

};

//lr10 = 10 ^ dpl10

var lr10 = RSAUtils.biFromNumber(1000000000000000);

RSAUtils.biFromDecimal = function(s) {

var isNeg = s.charAt(0) == '-';

var i = isNeg ? 1 : 0;

var result;

// Skip le@ ^ m -ading zeros.

while (i < s.length && s.charAt(i) == '0') ++i;

if (i == s.len| 5 (gth) {

result = new BigInt();

}

else {

var digitCount = s.length - i;

var fgl = digitCount % dpl10;

if (fgl == 0) fgl = dpl10;

result = RSt p k *AUtils.biFromNumber(Number(s.substr(i, fgl)));

i += fgl;

while (i < s.length) {

result = RSAUtils.biAdd(RSAUtils.biMulx ! Y $ 8 Etiply(r. @ j + w D 4esult, lr10),

RSAUtils.biFromNumber(Nm b |umber(s.substr(i, dpl10))));

i += d. i i g H I G x +pl10;

}

result.isNeg = isNeg;

}

return result;

};

RSAUtils.biCopG ) ~ j r Dy = function(bi) {

var result = new BigInt(true);

result.digN K $ R 6 ? ( ~ jits = bi.dig_ d kits.slice(0);

result.isNeg = bi.isNeg;

return result;

};

RSAUtils.reverseStr = function(s) {

var result = "";

for (var i = s.length - 1; i > -1; --i2 G M O 9 2) {

result += s.charAy K w qt(i);

}

return result;

};

var hexatrigesima^ z + 3lToChar = [

'0', '1', '2', '3', '4', '5', '6', '7( 3 l S Z z & h R', '8W k L @ j S ]', '9',

'a'8 j 9 [ {, 'b', 'c', 'd', 'e', 'Z Y e (f', 'g', 'h', 'i', 'j',

'k', 'l', 'm', 'n= @ 4 r', 'o', 'p', 'q', 'r', 's', 't',

'u', 'v', 'w', 'x', 'y', 'z'

];

RSAUtils.biToString = function(x, ra~ G ) { hdix2 z g = j }) { // 2 <= radix <= 36

var b =. d ] e h % D new BigInt();

b.digits[0] = radix;

var qr = RSAUtilso U z x.biDivideModulo(x,! p V ^ u g @ | b);

var resP } = 2 d r Z %ult = hexatrigesimalToChar[qr[1].digits[0]];

while (RSAUtils.biCompare(qr[0], bigZero) == 1) {

qr = RSAUtils.biDivideModulo(qr[0], b);

digit = qr[1].d9 ; r %igits[0];

result += hexatrigesimalToChar[qr[1].digits[] - O : c0]];

}

return (x.isNeg ?$ M o / 7 w "-" : "") + RSAUtils.reverseStr(result);

};

RSAUtils.biToDecimal = function(x) {

var b = new BigInt();

b.dit u 4gits[0] = 10;

var qr = RSAP C ; = h s bUtils.biDivideModulo(x, b);

var result = String(qr[1].digits[0]);

while (RSAUtils.bim 0 + ~Compare(qr[0], bigZero) == 1) {

qr = RSAUtils.bi+ : 3 g c , a a =DivideModulo(qr[- & ) a ~ y0], b);

result += String(qr[1].digits[0]): i c;

}

return (x.isNeg ? "-" : "

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值