所以从本质上讲,我正在尝试制作一个函数,它接受一个ASCII值,并将其乘以迭代中上一次乘法的剩余部分。
因此,对于第一次迭代(i = 0),余数只是设置为初始asc值。第二次迭代(i = 1),计算类似于rem = (rem * ascVal)%N,其中rem * ascVal中的rem是前一次迭代的rem (余数)。这将一直持续到i=e,其中返回rem的最后一个值。
这就是我到目前为止所知道的:
function newVal(ascVal) {
var i = 0;
var rem = ascVal;
while (i < e) {
rem = (rem * ascVal) % N;
i++;
if (i == e) {
return rem;
}
}
newVal(rem);
}问题是,如果每次输入的都是一个值,它总是返回55。我所需要做的就是找到e迭代后的余数。任何帮助将是伟大的,我可以张贴整个脚本,如果需要(包括所有计算等)
附注:这个脚本是一个小原型椭圆曲线加密器。
发布于 2016-07-02 10:41:20
好的,所以我通过使用while循环解决了这个问题。
function newVal(ascVal) {
var num = Number(ascVal);
var rem = num;
var i = 0;
while (i < e) {
i++;
rem = (rem*num)%N;
}
return rem;}
这样每次都会迭代正确的值。
https://stackoverflow.com/questions/38149014
复制相似问题