亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? bigint.js

?? JAVA實現的RSA公鑰加密方法
?? JS
?? 第 1 頁 / 共 3 頁
字號:
//convert a bigInt into a string in a given base, from base 2 up to base 95.
//Base -1 prints the contents of the array representing the number.
function bigInt2str(x,base) {
  var i,t,s="";

  if (s6.length!=x.length) 
    s6=dup(x);
  else
    copy(s6,x);

  if (base==-1) { //return the list of array contents
    for (i=x.length-1;i>0;i--)
      s+=x[i]+',';
    s+=x[0];
  }
  else { //return it in the given base
    while (!isZero(s6)) {
      t=divInt(s6,base);  //t=s6 % base; s6=floor(s6/base);
      s=digitsStr.substring(t,t+1)+s;
    }
  }
  if (s.length==0)
    s="0";
  return s;
}

//returns a duplicate of bigInt x
function dup(x) {
  var i;
  buff=new Array(x.length);
  copy(buff,x);
  return buff;
}

//do x=y on bigInts x and y.  x must be an array at least as big as y (not counting the leading zeros in y).
function copy(x,y) {
  var i;
  var k=x.length<y.length ? x.length : y.length;
  for (i=0;i<k;i++)
    x[i]=y[i];
  for (i=k;i<x.length;i++)
    x[i]=0;
}

//do x=y on bigInt x and integer y.  
function copyInt(x,n) {
  var i,c;
  for (c=n,i=0;i<x.length;i++) {
    x[i]=c & mask;
    c>>=bpe;
  }
}

//do x=x+n where x is a bigInt and n is an integer.
//x must be large enough to hold the result.
function addInt(x,n) {
  var i,k,c,b;
  x[0]+=n;
  k=x.length;
  c=0;
  for (i=0;i<k;i++) {
    c+=x[i];
    b=0;
    if (c<0) {
      b=-(c>>bpe);
      c+=b*radix;
    }
    x[i]=c & mask;
    c=(c>>bpe)-b;
    if (!c) return; //stop carrying as soon as the carry is zero
  }
}

//right shift bigInt x by n bits.  n<bpe.
function rightShift(x,n) {
  var i;
  var k=Math.floor(n/bpe);
  if (k) {
    for (i=0;i<x.length-k;i++) //right shift x by k elements
      x[i]=x[i+k];
    for (;i<x.length;i++)
      x[i]=0;
    n%=bpe;
  }
  for (i=0;i<x.length-1;i++) {
    x[i]=mask & ((x[i+1]<<(bpe-n)) | (x[i]>>n));
  }
  x[i]>>=n;
}

//do x=floor(|x|/2)*sgn(x) for bigInt x in 2's complement
function halve(x) {
  var i;
  for (i=0;i<x.length-1;i++) {
    x[i]=mask & ((x[i+1]<<(bpe-1)) | (x[i]>>1));
  }
  x[i]=(x[i]>>1) | (x[i] & (radix>>1));  //most significant bit stays the same
}

//left shift bigInt x by n bits.
function leftShift(x,n) {
  var i;
  var k=Math.floor(n/bpe);
  if (k) {
    for (i=x.length; i>=k; i--) //left shift x by k elements
      x[i]=x[i-k];
    for (;i>=0;i--)
      x[i]=0;  
    n%=bpe;
  }
  if (!n)
    return;
  for (i=x.length-1;i>0;i--) {
    x[i]=mask & ((x[i]<<n) | (x[i-1]>>(bpe-n)));
  }
  x[i]=mask & (x[i]<<n);
}

//do x=x*n where x is a bigInt and n is an integer.
//x must be large enough to hold the result.
function multInt(x,n) {
  var i,k,c,b;
  if (!n)
    return;
  k=x.length;
  c=0;
  for (i=0;i<k;i++) {
    c+=x[i]*n;
    b=0;
    if (c<0) {
      b=-(c>>bpe);
      c+=b*radix;
    }
    x[i]=c & mask;
    c=(c>>bpe)-b;
  }
}

//do x=floor(x/n) for bigInt x and integer n, and return the remainder
function divInt(x,n) {
  var i,r=0,s;
  for (i=x.length-1;i>=0;i--) {
    s=r*radix+x[i];
    x[i]=Math.floor(s/n);
    r=s%n;
  }
  return r;
}

//do the linear combination x=a*x+b*y for bigInts x and y, and integers a and b.
//x must be large enough to hold the answer.
function linComb(x,y,a,b) {
  var i,c,k,kk;
  k=x.length<y.length ? x.length : y.length;
  kk=x.length;
  for (c=0,i=0;i<k;i++) {
    c+=a*x[i]+b*y[i];
    x[i]=c & mask;
    c>>=bpe;
  }
  for (i=k;i<kk;i++) {
    c+=a*x[i];
    x[i]=c & mask;
    c>>=bpe;
  }
}

//do the linear combination x=a*x+b*(y<<(ys*bpe)) for bigInts x and y, and integers a, b and ys.
//x must be large enough to hold the answer.
function linCombShift(x,y,b,ys) {
  var i,c,k,kk;
  k=x.length<ys+y.length ? x.length : ys+y.length;
  kk=x.length;
  for (c=0,i=ys;i<k;i++) {
    c+=x[i]+b*y[i-ys];
    x[i]=c & mask;
    c>>=bpe;
  }
  for (i=k;c && i<kk;i++) {
    c+=x[i];
    x[i]=c & mask;
    c>>=bpe;
  }
}

//do x=x+(y<<(ys*bpe)) for bigInts x and y, and integers a,b and ys.
//x must be large enough to hold the answer.
function addShift(x,y,ys) {
  var i,c,k,kk;
  k=x.length<ys+y.length ? x.length : ys+y.length;
  kk=x.length;
  for (c=0,i=ys;i<k;i++) {
    c+=x[i]+y[i-ys];
    x[i]=c & mask;
    c>>=bpe;
  }
  for (i=k;c && i<kk;i++) {
    c+=x[i];
    x[i]=c & mask;
    c>>=bpe;
  }
}

//do x=x-(y<<(ys*bpe)) for bigInts x and y, and integers a,b and ys.
//x must be large enough to hold the answer.
function subShift(x,y,ys) {
  var i,c,k,kk;
  k=x.length<ys+y.length ? x.length : ys+y.length;
  kk=x.length;
  for (c=0,i=ys;i<k;i++) {
    c+=x[i]-y[i-ys];
    x[i]=c & mask;
    c>>=bpe;
  }
  for (i=k;c && i<kk;i++) {
    c+=x[i];
    x[i]=c & mask;
    c>>=bpe;
  }
}

//do x=x-y for bigInts x and y.
//x must be large enough to hold the answer.
//negative answers will be 2s complement
function sub(x,y) {
  var i,c,k,kk;
  k=x.length<y.length ? x.length : y.length;
  for (c=0,i=0;i<k;i++) {
    c+=x[i]-y[i];
    x[i]=c & mask;
    c>>=bpe;
  }
  for (i=k;c && i<x.length;i++) {
    c+=x[i];
    x[i]=c & mask;
    c>>=bpe;
  }
}

//do x=x+y for bigInts x and y.
//x must be large enough to hold the answer.
function add(x,y) {
  var i,c,k,kk;
  k=x.length<y.length ? x.length : y.length;
  for (c=0,i=0;i<k;i++) {
    c+=x[i]+y[i];
    x[i]=c & mask;
    c>>=bpe;
  }
  for (i=k;c && i<x.length;i++) {
    c+=x[i];
    x[i]=c & mask;
    c>>=bpe;
  }
}

//do x=x*y for bigInts x and y.
//for greater speed, let y<x.
function mult(x,y) {
  var i;
  if (ss.length!=2*x.length)
    ss=new Array(2*x.length);
  copyInt(ss,0);
  for (i=0;i<y.length;i++)
    if (y[i])
      linCombShift(ss,x,y[i],i);   //ss=1*ss+y[i]*(x<<(i*bpe))
  copy(x,ss);
}

//do x=x mod n for bigInts x and n.
function mod(x,n) {
  if (s4.length!=x.length)
    s4=dup(x);
  else
    copy(s4,x);
  if (s5.length!=x.length)
    s5=dup(x);  
  divide(s4,n,s5,x);  //x = remainder of s4 / n
}

//do x=x*y mod n for bigInts x,y,n.
//for greater speed, let y<x.
function multMod(x,y,n) {
  var i;
  if (s0.length!=2*x.length)
    s0=new Array(2*x.length);
  copyInt(s0,0);
  for (i=0;i<y.length;i++)
    if (y[i])
      linCombShift(s0,x,y[i],i);   //s0=1*s0+y[i]*(x<<(i*bpe))
  mod(s0,n);
  copy(x,s0);
}

//do x=x*x mod n for bigInts x,n.
function squareMod(x,n) {
  var i,j,d,c,kx,kn,k;
  for (kx=x.length; kx>0 && !x[kx-1]; kx--);  //ignore leading zeros in x
  k=kx>n.length ? 2*kx : 2*n.length; //k=# elements in the product, which is twice the elements in the larger of x and n
  if (s0.length!=k) 
    s0=new Array(k);
  copyInt(s0,0);
  for (i=0;i<kx;i++) {
    c=s0[2*i]+x[i]*x[i];
    s0[2*i]=c & mask;
    c>>=bpe;
    for (j=i+1;j<kx;j++) {
      c=s0[i+j]+2*x[i]*x[j]+c;
      s0[i+j]=(c & mask);
      c>>=bpe;
    }
    s0[i+kx]=c;
  }
  mod(s0,n);
  copy(x,s0);
}

//return x with exactly k leading zeros
function trim(x,k) {
  var i,y;
  for (i=x.length; i>0 && !x[i-1]; i--);
  y=new Array(i+k);
  copy(y,x);
  return y;
}

//do x=x**y mod n, where x,y,n are bigInts (n is odd) and ** is exponentiation.  0**0=1.
function powMod(x,y,n) {
  var k1,k2,kn,np;

  //calculate np from n for the Montgomery multiplications
  for (kn=n.length;kn>0 && !n[kn-1];kn--);
  np=radix-inverseModInt(modInt(n,radix),radix);
  if(s7.length!=n.length)
    s7=dup(n);
  copyInt(s7,0);
  s7[kn]=1;
  multMod(x ,s7,n);   // x = x * 2**(kn*bp) mod n

  if (s3.length!=x.length)
    s3=dup(x);
  else
    copy(s3,x);

  for (k1=y.length-1;k1>0 & !y[k1]; k1--);  //k1=first nonzero element of y
  if (y[k1]==0) {  //anything to the 0th power is 1
    copyInt(x,1);
    return;
  }
  for (k2=1<<(bpe-1);k2 && !(y[k1] & k2); k2>>=1);  //k2=position of first 1 bit in y[k1]
  for (;;) {
    if (!(k2>>=1)) {  //look at next bit of y
      k1--;
      if (k1<0) {
        mont(x,one,n,np);
        return;
      }
      k2=1<<(bpe-1);
    }    
    mont(x,x,n,np);

    if (k2 & y[k1]) //if next bit is a 1
      mont(x,s3,n,np);
  }
}    

//do x=x*y*Ri mod n for bigInts x,y,n, 
//  where Ri = 2**(-kn*bpe) mod n, and kn is the 
//  number of elements in the n array, not 
//  counting leading zeros.  
//x must be large enough to hold the answer.
//It's OK if x and y are the same variable.
//must have:
//  x,y < n
//  n is odd
//  np = -(n^(-1)) mod radix
function mont(x,y,n,np) {
  var i,j,c,ui,t;
  var kn=n.length;
  var ky=y.length;

  if (sa.length!=kn)
    sa=new Array(kn);

  for (;kn>0 && n[kn-1]==0;kn--); //ignore leading zeros of n
  //this function sometimes gives wrong answers when the next line is uncommented
  //for (;ky>0 && y[ky-1]==0;ky--); //ignore leading zeros of y

  copyInt(sa,0);

  //the following loop consumes 95% of the runtime for randTruePrime() and powMod() for large keys
  for (i=0; i<kn; i++) {
    t=sa[0]+x[i]*y[0];
    ui=(t*np) & mask;
    c=(t+ui*n[0]) >> bpe;
    t=x[i];

    //do sa=(sa+x[i]*y+ui*n)/b   where b=2**bpe
    for (j=1;j<ky;j++) { 
      c+=sa[j]+t*y[j]+ui*n[j];
      sa[j-1]=c & mask;
      c>>=bpe;
    }    
    for (;j<kn;j++) { 
      c+=sa[j]+ui*n[j];
      sa[j-1]=c & mask;
      c>>=bpe;
    }    
    sa[j-1]=c & mask;
  }

  if (!greater(n,sa))
    sub(sa,n);
  copy(x,sa);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成av人综合在线观看| 欧美三级日韩在线| 欧美精品一区二区三区在线| 五月综合激情网| 成人在线一区二区三区| 国产日韩欧美一区二区三区乱码 | 日韩一区二区三区在线视频| 亚洲va中文字幕| 欧美私人免费视频| 日韩精品视频网| 56国语精品自产拍在线观看| 日日夜夜免费精品| 91精品国产aⅴ一区二区| 日韩精品免费专区| 欧美一区二区三区不卡| 久久福利视频一区二区| 久久久国产综合精品女国产盗摄| 午夜欧美视频在线观看| 日韩欧美在线观看一区二区三区| 日韩电影在线一区二区| 欧美电视剧在线观看完整版| 男女激情视频一区| 久久久久久久国产精品影院| 高清在线观看日韩| 欧美国产精品一区| 色综合夜色一区| 天天做天天摸天天爽国产一区| 色先锋aa成人| 天堂资源在线中文精品| 精品噜噜噜噜久久久久久久久试看 | 韩国精品主播一区二区在线观看| 精品久久久久久无| 懂色av中文字幕一区二区三区| 久久精品欧美一区二区三区麻豆 | 国产一区视频网站| 中文幕一区二区三区久久蜜桃| eeuss国产一区二区三区| 国产精品国产自产拍高清av| 欧美体内she精视频| 精品伊人久久久久7777人| 欧美极品少妇xxxxⅹ高跟鞋 | 欧美日韩免费视频| 韩国三级在线一区| 亚洲三级在线看| 日韩精品一区二区三区四区视频 | 一区二区三区波多野结衣在线观看| 欧美日韩视频在线第一区| 国产乱子伦一区二区三区国色天香| 中文字幕一区二区三区不卡| 91精品国产综合久久久久久久久久 | 一区二区三区在线视频免费| 日韩女优制服丝袜电影| 国产精品自产自拍| 午夜a成v人精品| 中文字幕一区三区| 欧美成人女星排名| 欧美视频完全免费看| 风流少妇一区二区| 免费成人性网站| 亚洲精品写真福利| 日韩视频永久免费| 在线视频国产一区| 成人av电影在线观看| 蜜臀av一区二区三区| 欧美精品高清视频| 91免费视频网址| 国产精品一区二区不卡| 蜜臀av一区二区| 亚洲精品欧美综合四区| 欧美激情中文字幕一区二区| 日韩欧美国产小视频| 欧美日韩精品电影| 色综合 综合色| fc2成人免费人成在线观看播放| 久久99精品久久久久久| 亚洲日本成人在线观看| 久久中文娱乐网| 69p69国产精品| 在线看国产一区二区| 97久久超碰国产精品| 国产很黄免费观看久久| 国内精品视频666| 麻豆精品视频在线观看免费| 亚洲伦理在线免费看| 中文字幕亚洲不卡| 成人免费在线视频| 亚洲一区二区在线播放相泽| 日韩成人一区二区三区在线观看| 免费成人小视频| 国产成a人亚洲| 91女厕偷拍女厕偷拍高清| 欧美午夜宅男影院| 7777精品伊人久久久大香线蕉| 日韩一本二本av| 欧美国产日韩一二三区| 亚洲精品乱码久久久久久黑人| 亚洲一区二区三区四区在线观看 | 亚洲超丰满肉感bbw| 免费看黄色91| 成人晚上爱看视频| 在线免费不卡视频| 日韩欧美亚洲国产另类| 中文一区一区三区高中清不卡| 亚洲女女做受ⅹxx高潮| 日本亚洲欧美天堂免费| 高清成人免费视频| 欧美日韩视频专区在线播放| 亚洲精品一线二线三线无人区| 国产精品三级在线观看| 天天爽夜夜爽夜夜爽精品视频| 国产美女av一区二区三区| 色综合天天综合在线视频| 日韩三级视频在线看| 亚洲天堂福利av| 美国十次综合导航| 99久久伊人精品| 日韩一区二区电影在线| 自拍偷拍亚洲欧美日韩| 美女一区二区三区在线观看| bt欧美亚洲午夜电影天堂| 欧美精品久久天天躁| 中文字幕一区免费在线观看 | 国产精品1024| 欧美日韩一卡二卡三卡| 国产欧美一区二区三区鸳鸯浴| 亚洲成人一二三| 99久久777色| 久久久久国产精品人| 亚洲成人激情av| 99视频精品全部免费在线| 欧美一区二区美女| 一区二区三区毛片| 国产suv精品一区二区三区| 欧美一级二级三级蜜桃| 一区二区高清在线| 成人av网在线| 精品美女被调教视频大全网站| 亚洲成人动漫在线观看| 91在线一区二区三区| 久久久久国产精品厨房| 全国精品久久少妇| 欧美日韩在线不卡| 国产精品电影一区二区三区| 国产乱码精品一区二区三区av | 中文欧美字幕免费| 日韩综合在线视频| 91久久国产最好的精华液| 久久久久久一二三区| 蜜臀久久99精品久久久久宅男| 欧美亚洲自拍偷拍| 亚洲综合成人在线视频| 97精品视频在线观看自产线路二| 国产欧美在线观看一区| 国产麻豆日韩欧美久久| 26uuu另类欧美亚洲曰本| 美女在线一区二区| 日韩三级.com| 精品一二线国产| 精品国产一区二区三区四区四 | www.综合网.com| 国产欧美日韩视频一区二区| 国产在线精品一区二区不卡了 | 国产黄色成人av| 久久精品一二三| 国产成人免费网站| 国产拍欧美日韩视频二区| 国产 欧美在线| 日韩美女久久久| 色综合久久久久| 亚洲码国产岛国毛片在线| 91久久一区二区| 亚洲大型综合色站| 欧美一级夜夜爽| 国精产品一区一区三区mba视频| 久久久天堂av| 不卡影院免费观看| 一区二区三区四区精品在线视频| 91久久久免费一区二区| 亚洲午夜在线电影| 欧美高清激情brazzers| 美女脱光内衣内裤视频久久网站 | 99精品久久99久久久久| 亚洲日本免费电影| 欧美日韩国产影片| 青青草97国产精品免费观看| 久久综合九色综合欧美亚洲| 粉嫩av一区二区三区| 亚洲精品videosex极品| 在线成人午夜影院| 国产剧情一区二区三区| 亚洲欧美综合色| 欧美午夜免费电影| 极品瑜伽女神91| 国产精品蜜臀av| 欧美军同video69gay| 国产制服丝袜一区| 亚洲精品国产视频| 日韩三级中文字幕| 91亚洲精品一区二区乱码| 午夜精品久久久久影视|