它似乎是一個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://jsfiddle.net/3p79bxv2/
'ASCII [I]'將是字符,而不是ASCII值。假設'ascii'是一個字符串,就是。 – vlaz
這隻有在ascii是一個數組而不是字符串時纔有意義。由於字符串是不可變的,因此ascii [i] = ascii [i] + a'不會改變字符串中的任何內容。所以我期望ascii是一個數組,可能是由'someWord.split('')'形成的,但我想這將是一個數字數組,代表每個字母的ascii值,因爲模256字符串也沒有意義。就像'[45,78,52,55,78,99]'? – Shilly
@Shilly我已經對數組做了編輯 - 對於這個問題,我的解釋是否正確? – TMrtSmith