首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >函数( ascii,a,b,c) ascii代码拼图

函数( ascii,a,b,c) ascii代码拼图
EN

Stack Overflow用户
提问于 2016-11-02 16:37:45
回答 1查看 329关注 0票数 1

我正在开发一个使用以下脚本的代码拼图:

代码语言:javascript
复制
    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。这是正确的解释吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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

以下是代码:

代码语言:javascript
复制
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/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40385180

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档