我正在开发一个使用以下脚本的代码拼图:
function(ascii,a,b,c) {
for(i=0;i<ascii.length;i++) {
if(i%3==0){ascii[i]=(ascii[i]+a)%256;}
if(i%3==1){ascii[i]=(ascii[i]+b)%256;}
if(i%3==2){ascii[i]=(ascii[i]+c)%256;}
}
return ascii;
}我认为它是这样写的:‘对于消息中的每个字符(或者如果消息是一个数组,对于数组中的每个元素I),计算其位置mod3,并根据结果将a、b或c添加到字符的ascii值中,然后返回该值mod 256。这是正确的解释吗?
发布于 2016-11-02 19:42:20
它似乎是一个encoding function,它接受一个代表characters (0-255)的数字的array。然后按照按a,b, and c by modding by 3指定的长度移动字符。然后输出是modded by 255,因此它仍然是一个有效的字符值。最后,返回得到的编码array of numbers representing characters。
以下是代码:
function encodeIt(ascii,a,b,c) {
for(i=0;i<ascii.length;i++) {
if(i%3==0){ascii[i]=(ascii[i]+a)%256;}
if(i%3==1){ascii[i]=(ascii[i]+b)%256;}
if(i%3==2){ascii[i]=(ascii[i]+c)%256;}
}
return ascii;
}
function encodeString(myString,myAdjustments)
{
var myArray = [];
for(var i=0;i<myString.length;i++)
{
myArray.push(myString.charCodeAt(i));
}
var myArray = encodeIt(myArray,myAdjustments[0],myAdjustments[1],myAdjustments[2]);
var myEncodedString = "";
for(var i=0;i<myArray.length;i++)
{
myEncodedString+=String.fromCharCode(myArray[i]);
}
return myEncodedString;
}
var encodedString = encodeString("Hello World!",[30,80,-13]);
alert(encodedString);
var decodedString = encodeString(encodedString,[-30,-80,13]);
alert(decodedString);还有小提琴:
https://stackoverflow.com/questions/40385180
复制相似问题