著名的凯撒密码Caesar cipher,又叫移位密码。移位密码也就是密码中的字母会按照指定的数量来做移位。

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

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

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

function rot13(str) {
    //定义一个数组,用来存放解密后的字符
    var newArr = [];
    //遍历参数字符串
    for (var i = 0; i < str.length; i++) {
        // 非字母形式的字符,直接跳过,存入数组newArr中
        if (str.charCodeAt(i) < 65 || str.charCodeAt(i) > 90) {
            newArr.push(str.charAt(i));
        } else if (str.charCodeAt(i) > 77) {
            // 后13个大写字母,减去13
            newArr.push(String.fromCharCode(str.charCodeAt(i) - 13));
        } else {
            // 前13个大写字母,加上13 
            newArr.push(String.fromCharCode(str.charCodeAt(i) + 13));
        }
    }
    return newArr.join("");
}

javaScript位移密码算法挑战相关推荐

  1. JavaScript实现希尔密码 算法(附完 整源码)

    JavaScript实现希尔密码 算法 Matrix.js完整源代码 hillCipher.js完整源代码 hillCipher.test.js完整源代码 Matrix.js完整源代码 export ...

  2. JavaScript:实现ROT13密码算法(附完整源码)

    JavaScript:实现ROT13密码算法 function ROT13 (str) {if (typeof str !== 'string') {throw new TypeError('Argu ...

  3. 凯撒密码算法 Javascript实现

    信息安全概论 凯撒密码算法 ----Javascript实现 <!DOCTYPE html> <html lang="en"> <head>&l ...

  4. JavaScript实现凯撒密码算法(附完整源码)

    JavaScript实现凯撒密码算法 caesarCipher.js完整源代码 caesarCipher.test.js完整源代码 caesarCipher.js完整源代码 const english ...

  5. JavaScript数据结构与算法(1)(数组、栈、队列、链表)(ES6)

    注意:原教学视频:JavaScript(ES6)数据结构和算法 | JavaScript数据结构与算法 (都是CoderWhy老师的教学) 原作者(笔记)链接:JavaScript 数据结构与算法 | ...

  6. php实现凯撒密码加密算法,Python实现的凯撒密码算法示例

    本文实例讲述了Python实现的凯撒密码算法.分享给大家供大家参考,具体如下: 一 介绍 凯撒密码是一种非常古老的加密方法,相传当年凯撒大地行军打仗时为了保证自己的命令不被敌军知道,就使用这种特殊的方 ...

  7. 商用密码应用与安全性评估要点笔记(密码发展、密码算法)

    1.3 密码发展 词条 内容 创新的动力 信息系统的应用需求和攻击威胁 发展三个阶段 古典密码.机械密码.现代密码 古典密码 代换密码,采用一个代换表将一段明文变换成一段密文.若代换表只有一个,是单表 ...

  8. 信息安全复习三:古典密码之设计好的密码算法

    一.章节梗概 讨论以下算法,理解怎么设计好的密码算法的关键问题 1.Caesar cipher(替换密码) 2.单字母表密码(替换密码) 3.Playfair密码(多表代换密码) 4.维吉尼亚密码(多 ...

  9. 学习JavaScript 数据结构与算法

    学习链接:https://github.com/XPoet/js-data-structures-and-algorithms JavaScript 数据结构与算法 1.数据结构(data struc ...

  10. JavaScript数据结构与算法(2)(集合、字典、哈希表、二叉树、图)(ES6)

    注意:原教学视频:JavaScript(ES6)数据结构和算法 | JavaScript数据结构与算法 (都是CoderWhy老师的教学) 原作者(笔记)链接:JavaScript 数据结构与算法 | ...

最新文章

  1. python 替换array中的值_Python五个隐藏的特性,你可能从未听说过
  2. python 行列式计算
  3. Python自动化开发学习22-Django下(Form)
  4. java delphi 三层_三层架构delphi+Java+Oracle模式的实现
  5. 2017西安交大ACM小学期 文本查找[AC自动机]
  6. Makefile之嵌套执行(9)
  7. Puppet 部署tomcat
  8. 单选按钮用法, 选择的值
  9. VideoMatch: Matching based Video Object Segmentation
  10. java发送hotmail邮件,使用javamail将电子邮件发送到hotmail时遇到问题
  11. opera Reservation More Fields(接送机)
  12. 腾讯实习生招聘之总体感悟
  13. iOS控件使用和多样布局
  14. Excel中通过FREQUENCY统计分数段
  15. ubuntu alise设置
  16. eclipse快捷键使用以及一些小机灵
  17. springboot jpa链接数据库
  18. matlab 欧拉角 方向余弦,旋转矩阵、欧拉角之间转换
  19. 安装ubuntu系统过程中卡住
  20. C语言把宏定义字符串化

热门文章

  1. Linux - 搭建ftp服务器
  2. seo好学吗?怎么学seo?
  3. C语言实现扩展欧几里得算法
  4. fluidsim元件库下载_模块七FluidSIM软件应用 (1)
  5. mysql表锁ix_S、X、IS、IX数据库锁机制 很详细的教程,简单易懂
  6. 计算机攻防必学科目,网络攻防技术课程实验教学大纲doc.doc
  7. 数据资料网站_更新......
  8. 我的Ubuntu软件清单
  9. 九九乘法表之循环嵌套的奇妙
  10. 单片机c语言1ms程序,51单片机c语言延时函数 Void delay 1ms(unsigned int ms){un