javaScript位移密码算法挑战
著名的凯撒密码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位移密码算法挑战相关推荐
- JavaScript实现希尔密码 算法(附完 整源码)
JavaScript实现希尔密码 算法 Matrix.js完整源代码 hillCipher.js完整源代码 hillCipher.test.js完整源代码 Matrix.js完整源代码 export ...
- JavaScript:实现ROT13密码算法(附完整源码)
JavaScript:实现ROT13密码算法 function ROT13 (str) {if (typeof str !== 'string') {throw new TypeError('Argu ...
- 凯撒密码算法 Javascript实现
信息安全概论 凯撒密码算法 ----Javascript实现 <!DOCTYPE html> <html lang="en"> <head>&l ...
- JavaScript实现凯撒密码算法(附完整源码)
JavaScript实现凯撒密码算法 caesarCipher.js完整源代码 caesarCipher.test.js完整源代码 caesarCipher.js完整源代码 const english ...
- JavaScript数据结构与算法(1)(数组、栈、队列、链表)(ES6)
注意:原教学视频:JavaScript(ES6)数据结构和算法 | JavaScript数据结构与算法 (都是CoderWhy老师的教学) 原作者(笔记)链接:JavaScript 数据结构与算法 | ...
- php实现凯撒密码加密算法,Python实现的凯撒密码算法示例
本文实例讲述了Python实现的凯撒密码算法.分享给大家供大家参考,具体如下: 一 介绍 凯撒密码是一种非常古老的加密方法,相传当年凯撒大地行军打仗时为了保证自己的命令不被敌军知道,就使用这种特殊的方 ...
- 商用密码应用与安全性评估要点笔记(密码发展、密码算法)
1.3 密码发展 词条 内容 创新的动力 信息系统的应用需求和攻击威胁 发展三个阶段 古典密码.机械密码.现代密码 古典密码 代换密码,采用一个代换表将一段明文变换成一段密文.若代换表只有一个,是单表 ...
- 信息安全复习三:古典密码之设计好的密码算法
一.章节梗概 讨论以下算法,理解怎么设计好的密码算法的关键问题 1.Caesar cipher(替换密码) 2.单字母表密码(替换密码) 3.Playfair密码(多表代换密码) 4.维吉尼亚密码(多 ...
- 学习JavaScript 数据结构与算法
学习链接:https://github.com/XPoet/js-data-structures-and-algorithms JavaScript 数据结构与算法 1.数据结构(data struc ...
- JavaScript数据结构与算法(2)(集合、字典、哈希表、二叉树、图)(ES6)
注意:原教学视频:JavaScript(ES6)数据结构和算法 | JavaScript数据结构与算法 (都是CoderWhy老师的教学) 原作者(笔记)链接:JavaScript 数据结构与算法 | ...
最新文章
- python 替换array中的值_Python五个隐藏的特性,你可能从未听说过
- python 行列式计算
- Python自动化开发学习22-Django下(Form)
- java delphi 三层_三层架构delphi+Java+Oracle模式的实现
- 2017西安交大ACM小学期 文本查找[AC自动机]
- Makefile之嵌套执行(9)
- Puppet 部署tomcat
- 单选按钮用法, 选择的值
- VideoMatch: Matching based Video Object Segmentation
- java发送hotmail邮件,使用javamail将电子邮件发送到hotmail时遇到问题
- opera Reservation More Fields(接送机)
- 腾讯实习生招聘之总体感悟
- iOS控件使用和多样布局
- Excel中通过FREQUENCY统计分数段
- ubuntu alise设置
- eclipse快捷键使用以及一些小机灵
- springboot jpa链接数据库
- matlab 欧拉角 方向余弦,旋转矩阵、欧拉角之间转换
- 安装ubuntu系统过程中卡住
- C语言把宏定义字符串化
热门文章
- Linux - 搭建ftp服务器
- seo好学吗?怎么学seo?
- C语言实现扩展欧几里得算法
- fluidsim元件库下载_模块七FluidSIM软件应用 (1)
- mysql表锁ix_S、X、IS、IX数据库锁机制 很详细的教程,简单易懂
- 计算机攻防必学科目,网络攻防技术课程实验教学大纲doc.doc
- 数据资料网站_更新......
- 我的Ubuntu软件清单
- 九九乘法表之循环嵌套的奇妙
- 单片机c语言1ms程序,51单片机c语言延时函数 Void delay 1ms(unsigned int ms){un