单表代换加密算法是比较经典的加密算法,事先准备好字母代换的相应对照表,即可实现加密解密,这里我们用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实现单表代换密码加密相关推荐

  1. 单表代换密码加密解密

    单表代换密码加密解密原理: 单表代换是指英文字母在进行密码编码替换的时候,有一张对照表,也就是说,对于每一个字母,都是唯一对应的,如: 26个源字母表为:abcdefghijklmnopqrstuvw ...

  2. 单表代换密码之Caesar密码的代码实现

    单表代换密码之Caesar密码的代码实现 代码块 代码块语法遵循标准markdown代码,例如: from operator import mod #ceasar加密算法 def ceasarC(a) ...

  3. 单表代换密码(凯撒密码)

    单表代换密码概述 对所有的明文字母都用一个固定的代换进行加密 ,因而称为 单表代换密码.加密过程中是从明文字母表到密文字母表的一一映射.例: 恺撒(Caesar)密码. 缺点:不能抗击字母频度分析,容 ...

  4. 单表置换密码java代码实现_单表替换密码

    要求: 实现单表替换密码,用键盘接收明文和密钥,屏幕答应替换表和密文,大小写敏感,输入健壮性. 实际问题: 密钥处理应该是这个程序的重点,加密和解密都没有什么要注意的地方.用key[]数组接收keyt ...

  5. NSSCTF刷题wp——单表替换密码

    NSSCTF Crypto 模块 单表替换密码 [HGAME 2022 week1]Matryoshka ID:1855 打开Matryoshka.txt,发现是一堆点,看标签可能是Braille盲文 ...

  6. 单表代替密码原理及算法实现

       要了解单表替代密码就得先了解替代密码,在这里我就做一下简单的介绍:       替代是古典密码中用到的最基本的处理技巧之一 .       替代密码是指先建立一个替换表,加密时将需要加密的明文依 ...

  7. 单表代换加密算法用c语言实现,单表代替密码原理及算法实现

    二.由独立试验产生双字母.根据Beker在1982年统计的英文双字母的频数给出了双字母的频率.       统计出的英文双字母的概率最大的30对字母按概率大小排列为: th    he    in   ...

  8. 多表代换和维吉尼亚密码

    一.多表代换 多表代换密码跟单表代换密码的区别,主要是,多表代换的代换表有多个.对于加密,交替使用不同的代换表.注意,加密和解密要同步,也就是,加密和解密所用的代换表顺序要一致,不然,解密会出错. 多 ...

  9. 密码加密解密(三)——仿射密码设计

    代换密码算法的原理是使用替代法进行加密,就是将明文中的字符用其它字符替代后形成密文.例如,明文字母a.b.c.d,用D.E.F.G做对应替换后形成密文. 代换密码包括多种类型,如单表代换密码.多表代换 ...

最新文章

  1. Cocos2D-Android-1之源码详解:2.ActionManagerTest
  2. 用户操作-用户详情服务器端代码实现
  3. epic怎么添加本地游戏_游戏日报:原神公测无法上架多家安卓渠道;Epic投资布局游戏UGC平台...
  4. 双向循环链表中结点的交换(C++)
  5. Spring框架----基于接口的动态代理
  6. 【python】yaml文件操作
  7. Windows 下 PHP 开发环境配置系列三 - eclipse PDT + Zend Debugger 调试web 项目
  8. 常见的mysql集群
  9. 为什么有些人会放弃考研?
  10. 你不可不知的Java引用类型之——ReferenceQueue源码详解
  11. DMG计算机,传授dmg文件怎么打开
  12. EDEM软件简单介绍
  13. 分布式监控系统WGCLOUD故障自愈能力说明
  14. 微信公众号回复服务器参数错误,为什么微信文章网址在浏览器访问提示参数错误...
  15. ios 系统状态栏样式修改_iOS_状态栏字体颜色修改(完美解决)
  16. 转】基于GeoServer的电子地图系统说明(四):空间数据库实现
  17. toLua++使用(转)
  18. Dynamo相关下载教程分享!(附软件包和Revit使用插件Revit Lookup下载教程)
  19. 问题诊断:为什么点击淘宝评价详情无法显示内容?
  20. 【loj3054】【hnoi2019】鱼

热门文章

  1. 查看centos版本
  2. 金融企业软件测试中心筹备书 - 背景篇
  3. DirectX11 演示程序框架
  4. hiho #1469 : 福字(dp)
  5. 神州数码CIO沈旸:元宇宙是开放的数字世界
  6. 仿京东商城H5主页面源代码,html、css、js
  7. 32位win7系统和64位win7系统有什么差异
  8. ADB Logcat 工具使用环境配置
  9. opporeno5可以用鸿蒙系统,华为mate40和opporeno5对比哪个好
  10. opencv 去除噪点 java_c++ - OpenCV-去除图像中的噪点 - 堆栈内存溢出