下面是一个我收藏的函数,用于计算rsa的pow和mod有很高的效率。我不知道是什么算法,但这个函数真的很好用。
function RSAPowMod(txt, key, n) {
var a, b;
if (key % 2 == 0) {
a = 1
for (var i = 1; i <= key / 2; i++) {
b = (txt * txt) % n
a = (b * a) % n
}
} else {
a = txt
for (var i = 1; i <= key / 2; i++) {
b = (txt * txt) % n
a = (b * a) % n
}
}
return a;
}
txt,key,n都可以是字符串,代表着大数,当然,具体大到什么范围我不知道。
大于65535的数我测试过,表示支持不止两字节了,那推测是四字节或者以上。
当我用九位数和十位数的时候,计算效率就不行。中间的,比如七位八位数的,我没有现成的密钥对,测试不了。
把对应的变量名改一改就符合要求了。(其实不用改,直接使用函数也是可以的。)
参考:
http://hi.baidu.com/northhujia/blog/item/47269318568639b14bedbc26.html