ROT13密码
来源:互联网 发布:江西在线网安全知让 编辑:程序博客网 时间:2024/06/04 14:48
ROT13密码
移位密码:密码中的字母会按照指定的数量来做移位。
一个常见的案例就是ROT13密码,字母会移位13个位置。由'A' ↔ 'N', 'B' ↔ 'O',以此类推。
写一个ROT13函数,实现输入加密字符串,输出解密字符串。
所有的字母都是大写,不要转化任何非字母形式的字符(例如:空格,标点符号),遇到这些特殊字符,跳过它们。
分析:大写字母"A"的unicode码为65,同理“Z”—— 90,“M”—— 77。
任何非字母形式的字符,不需要转换,直接存入数组
后13个大写字母,其unicode码减去13后通过String.fromCharCode()转换后,存入数组中
前13个大写字母,其unicode码加上13后通过String.fromCharCode()转换后,存入数组中
最后将数组转换成字符串即可
String.fromCharCode() 静态方法根据指定的 Unicode 编码中的序号值来返回一个字符串。
String.charCodeAt()
方法返回0到65535之间的整数,代表索引处字符的UTF-16编码单元(在Unicode编码单元表示一个单一的UTF-16编码单元的情况下,UTF-16编码单元匹配Unicode编码单元。
function rot13(str) {
var newarr = [];
for(var i = 0; i < str.length; i ++){
if(str.charCodeAt(i) < 65 || str.charCodeAt(i) > 90){
newarr.push(str.charAt(i));
// 非字母形式的字符,直接跳过,存入数组newarr中
}
else if(str.charCodeAt(i) > 77){
newarr.push(String.fromCharCode(str.charCodeAt(i) - 13));
// 77 —— 第13个大写字母“M”
// 后13个大写字母,减去13
}else{
newarr.push(String.fromCharCode(str.charCodeAt(i) + 13));
// 前13个大写字母,加上13
}
}
return newarr.join("");
}
rot13("SERR PBQR PNZC");
——FreeCodeCamp269《Caesars Cipher》
- ROT13密码
- rot13
- rot13
- 【加密】ROT13
- ROT13函数
- rot13 编码
- 用Python实现ROT13
- ROT13加密和解密
- (字典)rot13加密
- rot13加密解密
- rot13加密和解密
- c#使用ROT13加密,解密
- go语言Exercise: Rot13 Reader
- udacity-web development-homework(unit2-rot13)
- python2.7.5实现ROT13编解码
- win7下libevent实现的rot13服务器
- A Tour of Go: Exercise: Rot13 Reader
- rot13初学者和python的实现
- C实例---打印菱形
- webview.h
- Box2D v2.3.0 用户指南(第六章)
- 一只Android大三狗的2016
- C++Primer第五版 第五章习题答案(11~20)
- ROT13密码
- webview.cpp
- 史上最精炼Java基础知识点总结
- ASP .NET DropDownList多级联动事件
- hdu 1003 Max Sum
- Box2D v2.3.0 用户指南(第七章)
- Oracle列转行函数 Listagg() 语法详解及应用实例
- gdb调试(c++)
- Box2D v2.3.0 用户指南(第八章)