JS实现单表代换密码加密
单表代换加密算法是比较经典的加密算法,事先准备好字母代换的相应对照表,即可实现加密解密,这里我们用JS进行实现。
明文字母与密文字母对应关系:
明文 | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | p | q | r | s | t | u | v | w | x | y | z |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
密文 | W | J | A | N | D | Y | U | Q | I | B | C | E | F | G | H | K | L | M | O | P | R | S | T | V | X | Z |
JS实现算法:
//加密算法function jiami(){arr = nojiami.value.toLowerCase().split('');console.log(arr);var i = 0, j = 0;while(i < arr.length){for(j=0;j<25;j++){if (arr[i] == a[j]){arr[i] = b[j];break;}}i++;}yesjiami.value = arr.join('');}//解密算法function jiemi(){arr = yesjiami.value.toUpperCase().split('');console.log(arr);var i = 0, j = 0;while(i < arr.length){for(j=0;j<25;j++){if (arr[i] == b[j]){arr[i] = a[j];break;}}i++;}nojiami.value = arr.join('');}
效果图:
完整代码:
<html>
<head><title>单表代换密码Demo</title>
</head>
<body><h1>单表代换密码</h1><br><h4>明文字母与密文字母对应关系:</h4><table border = 1><tr><th>明文</th><td>a</td><td>b</td><td>c</td><td>d</td><td>e</td><td>f</td><td>g</td><td>h</td><td>i</td><td>j</td><td>k</td><td>l</td><td>m</td><td>n</td><td>o</td><td>p</td><td>q</td><td>r</td><td>s</td><td>t</td><td>u</td><td>v</td><td>w</td><td>x</td><td>y</td><td>z</td></tr><tr><th>密文</th><td>W</td><td>J</td><td>A</td><td>N</td><td>D</td><td>Y</td><td>U</td><td>Q</td><td>I</td><td>B</td><td>C</td><td>E</td><td>F</td><td>G</td><td>H</td><td>K</td><td>L</td><td>M</td><td>O</td><td>P</td><td>R</td><td>S</td><td>T</td><td>V</td><td>X</td><td>Z</td></tr></table><hr><br><br><span>要加密的数据:</span><input type="text" id="nojiami" /><br><br><button onclick="jiami();">加密</button><button onclick="jiemi();">解密</button><br><br><span>加密后的数据:</span><input type="text" id="yesjiami" />
</body>
<script>/** 单表代换加密算法* *///密文对应关系var a = ['a','b','c','d','e','f','g','h','i','g','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'];var b = ['W','J','A','N','D','Y','U','Q','I','B','C','E','F','G','H','K','L','M','O','P','R','S','T','V','X','Z'];var nojiami = document.getElementById("nojiami");var yesjiami = document.getElementById("yesjiami");//加密算法function jiami(){arr = nojiami.value.toLowerCase().split('');console.log(arr);var i = 0, j = 0;while(i < arr.length){for(j=0;j<25;j++){if (arr[i] == a[j]){arr[i] = b[j];break;}}i++;}yesjiami.value = arr.join('');}//解密算法function jiemi(){arr = yesjiami.value.toUpperCase().split('');console.log(arr);var i = 0, j = 0;while(i < arr.length){for(j=0;j<25;j++){if (arr[i] == b[j]){arr[i] = a[j];break;}}i++;}nojiami.value = arr.join('');}
</script>
</html>
JS实现单表代换密码加密相关推荐
- 单表代换密码加密解密
单表代换密码加密解密原理: 单表代换是指英文字母在进行密码编码替换的时候,有一张对照表,也就是说,对于每一个字母,都是唯一对应的,如: 26个源字母表为:abcdefghijklmnopqrstuvw ...
- 单表代换密码之Caesar密码的代码实现
单表代换密码之Caesar密码的代码实现 代码块 代码块语法遵循标准markdown代码,例如: from operator import mod #ceasar加密算法 def ceasarC(a) ...
- 单表代换密码(凯撒密码)
单表代换密码概述 对所有的明文字母都用一个固定的代换进行加密 ,因而称为 单表代换密码.加密过程中是从明文字母表到密文字母表的一一映射.例: 恺撒(Caesar)密码. 缺点:不能抗击字母频度分析,容 ...
- 单表置换密码java代码实现_单表替换密码
要求: 实现单表替换密码,用键盘接收明文和密钥,屏幕答应替换表和密文,大小写敏感,输入健壮性. 实际问题: 密钥处理应该是这个程序的重点,加密和解密都没有什么要注意的地方.用key[]数组接收keyt ...
- NSSCTF刷题wp——单表替换密码
NSSCTF Crypto 模块 单表替换密码 [HGAME 2022 week1]Matryoshka ID:1855 打开Matryoshka.txt,发现是一堆点,看标签可能是Braille盲文 ...
- 单表代替密码原理及算法实现
要了解单表替代密码就得先了解替代密码,在这里我就做一下简单的介绍: 替代是古典密码中用到的最基本的处理技巧之一 . 替代密码是指先建立一个替换表,加密时将需要加密的明文依 ...
- 单表代换加密算法用c语言实现,单表代替密码原理及算法实现
二.由独立试验产生双字母.根据Beker在1982年统计的英文双字母的频数给出了双字母的频率. 统计出的英文双字母的概率最大的30对字母按概率大小排列为: th he in ...
- 多表代换和维吉尼亚密码
一.多表代换 多表代换密码跟单表代换密码的区别,主要是,多表代换的代换表有多个.对于加密,交替使用不同的代换表.注意,加密和解密要同步,也就是,加密和解密所用的代换表顺序要一致,不然,解密会出错. 多 ...
- 密码加密解密(三)——仿射密码设计
代换密码算法的原理是使用替代法进行加密,就是将明文中的字符用其它字符替代后形成密文.例如,明文字母a.b.c.d,用D.E.F.G做对应替换后形成密文. 代换密码包括多种类型,如单表代换密码.多表代换 ...
最新文章
- Cocos2D-Android-1之源码详解:2.ActionManagerTest
- 用户操作-用户详情服务器端代码实现
- epic怎么添加本地游戏_游戏日报:原神公测无法上架多家安卓渠道;Epic投资布局游戏UGC平台...
- 双向循环链表中结点的交换(C++)
- Spring框架----基于接口的动态代理
- 【python】yaml文件操作
- Windows 下 PHP 开发环境配置系列三 - eclipse PDT + Zend Debugger 调试web 项目
- 常见的mysql集群
- 为什么有些人会放弃考研?
- 你不可不知的Java引用类型之——ReferenceQueue源码详解
- DMG计算机,传授dmg文件怎么打开
- EDEM软件简单介绍
- 分布式监控系统WGCLOUD故障自愈能力说明
- 微信公众号回复服务器参数错误,为什么微信文章网址在浏览器访问提示参数错误...
- ios 系统状态栏样式修改_iOS_状态栏字体颜色修改(完美解决)
- 转】基于GeoServer的电子地图系统说明(四):空间数据库实现
- toLua++使用(转)
- Dynamo相关下载教程分享!(附软件包和Revit使用插件Revit Lookup下载教程)
- 问题诊断:为什么点击淘宝评价详情无法显示内容?
- 【loj3054】【hnoi2019】鱼