美文网首页前端Freecode camp
FCC 题目 Caesars Cipher

FCC 题目 Caesars Cipher

作者: a1838b5b5d28 | 来源:发表于2017-04-06 19:49 被阅读385次

    要求

    让上帝的归上帝,凯撒的归凯撒。

    下面我们来介绍风靡全球的凯撒密码Caesar cipher,又叫移位密码。

    移位密码也就是密码中的字母会按照指定的数量来做移位。

    一个常见的案例就是ROT13密码,字母会移位13个位置。由'A' ↔ 'N', 'B' ↔ 'O',以此类推。

    写一个ROT13函数,实现输入加密字符串,输出解密字符串。

    所有的字母都是大写,不要转化任何非字母形式的字符(例如:空格,标点符号),遇到这些特殊字符,跳过它们。

    当你完成不了挑战的时候,记得开大招'Read-Search-Ask'。

    这是一些对你有帮助的资源:

    String.charCodeAt()
    String.fromCharCode()


    代码

    function rot13(str) { // LBH QVQ VG!
          var arr=str.split('');
          console.log(arr);
          for(var i=0;i<arr.length;i++){
            var num1=arr[i].charCodeAt(0);//输入的加密字符编码
            var num2=num1-13; //输入的加密字符编码解密后-13用来解密
            if(num1>=65&&num1<=90){ //判断字符是不是字母 
                    if(num2<65){   //num1-13超出字母的编码表
                    arr[i]=String.fromCharCode(num1+13);// 90-(13-(num1-64))
                }
                else{
                    arr[i]=String.fromCharCode(num2);
                }
            }
            else{
                arr[i]=arr[i];
            }
            str=arr.join("");
            
          }   
          return str;
        }
    

    要点

    ACCII编码表 里面的字母编码

    相关文章

      网友评论

        本文标题:FCC 题目 Caesars Cipher

        本文链接:https://www.haomeiwen.com/subject/fanqattx.html