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

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

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

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

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

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

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

  • String.charCodeAt()
  • String.fromCharCode()

按照题目思路就好

function rot13(str) { var result=[];for(var i=0;i<str.length;i++){if(str.charCodeAt(i)>=65&&str.charCodeAt(i)<=77){result.push(String.fromCharCode(str.charCodeAt(i)+13));}else if(str.charCodeAt(i)>=78&&str.charCodeAt(i)<=90){result.push(String.fromCharCode(str.charCodeAt(i)-13));}else{result.push(String.fromCharCode(str.charCodeAt(i)));} }return result.join('');
}

其实两种方法差不多

function rot13(str) { // LBH QVQ VG!var result = '';for(let i=0;i<str.length;i++){var idx = str[i].charCodeAt();if(idx>=65&&idx<=77){result += String.fromCharCode(idx+13);}else if(idx>77&&idx<=90){result += String.fromCharCode(idx-13);}else{result += str[i];}}return result;
}

转载于:https://www.cnblogs.com/renbo/p/6670929.html

Caesars Cipher相关推荐

  1. JS:Caesars Cipher(凯撒密码)

    Caesars Cipher 凯撒密码 (让上帝的归上帝,凯撒的归凯撒) 下面我们来介绍风靡全球的凯撒密码Caesar cipher,又叫移位密码. 移位密码也就是密码中的字母会按照指定的数量来做移位 ...

  2. FreeCodeCamp Caesars密码项目的演练

    Project 3 from JavaScript Algos and DS Certification. JavaScript Algos和DS认证的Project 3. We're continu ...

  3. freeCodeCamp算法

    /* Reverse a String 翻转字符串 先把字符串转化成数组,再借助数组的reverse方法翻转数组顺序,最后把数组转化成字符串. 你的结果必须得是一个字符串 */ function re ...

  4. Freecodecamp 刷题记录——前端基础算法

    Basic Front End Development Projects Reverse a String 翻转字符串 先把字符串转化成数组,再借助数组的reverse方法翻转数组顺序,最后把数组转化 ...

  5. JavaScript算法学习

    1.Array.prototype.filter() filter() 方法创建一个新数组, 其包含通过所提供函数实现的测试的所有元素. 这个要注意的是返回值是"一个包含回调函数为其返回tr ...

  6. E - Right-Left Cipher CodeForces - 1087A (模拟)

    E - Right-Left Cipher CodeForces - 1087A 题解 一左一右输出 自己的 low 代码 #include<bits/stdc++.h> using na ...

  7. phpmyadmin登录报错crypt_random_string requires at least one symmetric cipher be loaded 解决方法

    phpmyadmin登录报错crypt_random_string requires at least one symmetric cipher be loaded 解决方法 参考文章: (1)php ...

  8. 部署laravel报错:No supported encrypter found. The cipher and / or key length are invalid.

    一.背景 把laravel项目部署到服务器上.访问时候,报错信息为: No supported encrypter found. The cipher and / or key length are ...

  9. windows下cipher和efsdump工具的初步使用

    efsdump工具,显示EFS加密文件的信息: 先找个文件,用EFS加密,然后用efsdump看一下: 假设加密 使用说明.txt:属性,高级: 加密文件: 当前电脑不能使用EFS: 直接下一个efs ...

最新文章

  1. 每天2小时,吃透 985博士总结的这套保姆级TensorFlow + PyTorch笔记(20G高清/PPT/代码)...
  2. Android老版本项目导入到新版SDK提示错误
  3. Node和java和php,服务端I/O性能大比拼:Node、PHP、Java和Go(三)
  4. Google地图搜索的触角伸向月球
  5. python3的位移操作
  6. Python语言学习之文件格式后缀那些事:python和常见各种文件格式后缀介绍、使用方法之详细攻略
  7. 基于 abp vNext 和 .NET Core 开发博客项目 - 博客接口实战篇(二)
  8. Linux系统常用命令以及常见问题的解决方法
  9. 232/485电平,OC门,OD门,TTL电平,CMOS电平,
  10. python socket poll
  11. 常用命令-JAVA大数据-Week5-DAY2-linux
  12. NUC1931 Problem D 区间素数【素数筛选】
  13. ux.form.field.KindEditor 所见所得编辑器
  14. ubuntu14.04 server 安装docker
  15. access建立er图_ER图的构建
  16. 绕过tp路由器管理密码_TP-Link无线路由器管理员密码是什么?
  17. 机器人感知与规划笔记 (2) - 传感器(Sensor)类型及其限制
  18. 详细分析本机号码一键登录原理!建议收藏
  19. PCB的ESD防护设计
  20. 教务系统自动评教_新版正方教务管理系统自动评教脚本

热门文章

  1. MSF以及Samba漏洞利用
  2. Vue2项目视频控件大全,亲测有效
  3. Java源码阅读学习后的浅析和感悟(JDK篇)(持续更新)
  4. 嵌入式软件开发工程师与FPGA开发工程师
  5. 【小教程】Ubuntu gdown下载Google Drive文件
  6. html 绘制正方形,HTML5之Canvas画正方形
  7. 字体网ziti163.com全面启用SSL服务
  8. 这几个苹果手机的实用小技巧分享给你
  9. log4j学习笔记--ConversionPattern参数详解-- RollingFileAppender选项
  10. java 四则混合运算_四则混合运算,java实现