位置: 编程技术 - 正文

javascript实现playfair和hill密码算法(javascript playground)

编辑:rootadmin

推荐整理分享javascript实现playfair和hill密码算法(javascript playground),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:javascript怎么用,js操作display,js操作display,js canplay,js canplay,js canplay,javascript playground,js player,内容如对您有帮助,希望把文章链接给更多的朋友!

时至期末,补习信息安全概论作业。恰巧遇古典密码学算法中的playfair算法和hill算法,用javascript语言实现起来是在有趣,边查百度边编码,顺便好好补习一下javascript基础。

playfair

Playfair密码(英文:Playfair cipher 或 Playfair square)是一种替换密码。依据一个5*5的正方形组成的密码表来编写,表中排列有个字母。对于英语中的个字母,去掉最常用的Z,构成密码表。

实现思路:

1,编制密码表

  密钥是一个单词或词组,密码表则根据用户所给出的密钥整理而出。若有重复字母,可将后面重复的字母去掉。 

如密钥crazy dog,可编制成

C O H M T R G I N U A B J P V Y E K Q W D F L S X

考虑将keychars插入到密码表时需要去除重复字符和Z,设计算法如下:

2,整理明文

  将明文每两个字母组成一对。如果成对后有两个相同字母紧挨或最后一个字母是单个的,就插入一个字母X。初期编码时考虑不周到,强硬地拒绝输入字母个数为单数,用户体验不佳。

var k = document.getElementById("keychars").value.toUpperCase().replace(/s/ig,'');对明文去除空格和转换为大写处理。

3,编写密文

javascript实现playfair和hill密码算法(javascript playground)

明文加密规则(出自百度): 1 )若p1 p2在同一行,对应密文c1 c2分别是紧靠p1 p2 右端的字母。其中第一列被看做是最后一列的右方。如,按照前表,ct对应oc2 )若p1 p2在同一列,对应密文c1 c2分别是紧靠p1 p2 下方的字母。其中第一行被看做是最后一行的下方。3 )若p1 p2不在同一行,不在同一列,则c1 c2是由p1 p2确定的矩形的其他两角的字母(至于横向替换还是纵向替换要事先约好,或自行尝试)。如按照前表,wh对应tk或kt。 如,依照上表,明文where there is life,there is hope.可先整理为wh er et he re is li fe th er ei sh op ex然后密文为:kt yg wo ok gy nl hj of cm yg kg lm mb wf将密文变成大写,然后几个字母一组排列。如5个一组就是KTYGW OOKGY NLHJO FCMYG KGLMM BWF 4,解密将密钥填写在一个5*5的矩阵中(去出重复字母和字母z),矩阵中其它未用到的字母按顺序填在矩阵剩余位置中,根据替换矩阵由密文得到明文。反其道而行。 实现效果如图:

hill

希尔密码(Hill Password)是运用基本矩阵论原理的替换密码。依据一个5*5的正方形组成的密码表来编写,表中排列有个字母。对于英语中的个字母,去掉最常用的Z,构成密码表。

实现思路:

1,编写字母表var chars = ['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'];2,随机生成密匙

3,关键性代码,根据自动生成的密匙,对明文进行处理:

实现效果如图:

以上算法存在不足:

1,面向过程设计,耦合度高

2,过多嵌套循环,算法效率有待优化

3,对于可能出现的情况考虑不周到,例如没有对用户输入非字母字符时进行处理。

总结:

学了一段时间的信息安全概论这门课,只能对信息安全了解皮毛。信息安全是一门很有趣的科目,平时遇到一些问题尽可能多思考,多动手,多运用。同时也要加强数学基础积累,巩固js基础,拓宽知识面。这条路任重道远。

浅谈javascript回调函数 把函数作为参数传入到另一个函数中。这个函数就是所谓的回调函数经常遇到这样一种情况,某个项目的A层和B层是由不同的人员协同完成.A层负责功能f

JavaScript中的6种运算符总结 JavaScript运算符主要包括:算术运算符赋值运算符比较运算符三元运算符逻辑运算符字符串连接运算符算术运算符运算符说明例子运算结果+加y=2+1y=3-减y=2

JavaScript字符串对象的concat方法实例(用于连接两个或多个字符串) JavaScriptconcat方法concat方法连接两个或多个字符串,其语法如下:str_object.concat(str1,str2,...)str_object是需要连接的第一个字符串(对象),str1是需要连接的

标签: javascript playground

本文链接地址:https://www.jiuchutong.com/biancheng/385614.html 转载请保留说明!

上一篇:JS数组(Array)处理函数整理(js 数组处理)

下一篇:浅谈javascript回调函数(js实现回文)

  • 小规模纳税人开专票税率是1%还是3%
  • 空壳公司如何报税
  • 新车车船税怎么交
  • 车票增值税抵扣如何申报
  • 固定资产的确认条件包括
  • 银行承兑汇票相当于贷款
  • 企业收到投资者投入的生产设备,其账务处理
  • 固定资产投资子公司交增值税税吗
  • 小微企业的资产总额看哪里判断的
  • 个税补缴纳
  • 最新增值税申报表及附表下载
  • 个体工商户免征税额度是多少
  • 发生销售折让可以不开具
  • 企业转让土地需要交土地增值税吗
  • 债券投资的风险主要有
  • 营改增行业的销售额
  • 债务重组损失计算公式
  • 收到总工会转工资怎么办
  • 报名费发票开什么项目
  • 企业借个人款该交税吗
  • 租房发票的税由谁承担
  • 如果没有预缴就开票会怎样?
  • 停车管理费什么时候交
  • 在途物资非合理损耗
  • 增值税即征即退会计处理
  • 公司代缴的个税怎么查询
  • 计提固定资产会计科目
  • 捐赠固定资产资产处置损益
  • 城市维护建设税计算公式
  • 研发支出是否可以抵税
  • 王者荣耀电脑版怎么键盘操作
  • 增值税电子发票有什么用
  • 关于员工被辞退经济赔偿
  • mac休眠后黑屏无法开机正常吗
  • 产品销售账务处理办法
  • elf.exe是什么程序
  • 有形动产融资租赁税率是多少
  • PHP:mcrypt_enc_self_test()的用法_Mcrypt函数
  • 独立核算统负盈亏和独立核算自负盈亏的区别
  • python模块怎么写
  • 开源dap
  • python判断字符串为字母
  • 阿里云主机安装软件
  • sqlserver怎么把数据库导出来
  • mongodb replica set 配置高性能多服务器详解
  • 发票认证后总局没信息
  • 长期借款属于什么会计分录
  • sql脚本语言怎么写
  • 国际货运代理需要什么样的人才
  • 经营性应收项目的减少调增 为什么是减
  • 损益类账户怎么记入总账
  • 跨年错账更正
  • 贷款利息收入要交增值税吗
  • 一般纳税人福利费
  • 发出存货的计价应当采用
  • 红字申请单能作废吗
  • 城镇土地使用税减免税政策
  • 装修公司完工交付文案
  • 日常修理费用如何记账
  • mysql 5.7.12 winx64安装配置方法图文教程
  • mysql 5.7.30安装
  • windows隐藏
  • linux服务器怎么用
  • 什么叫另类
  • 盗版win10可以用win10商店吗
  • 如何使用node.js
  • css基础知识教程
  • python 变参
  • 用python写网页
  • python下读取公私钥做加解密实例详解
  • java list转set的方法
  • node写自动化脚本
  • jquery的设计模式
  • html伸缩布局
  • 零基础入门安卓逆向
  • pycharm flask框架
  • 苏州地方税务
  • 国家税务贵州省税务局
  • 东莞国税稽查分局局长
  • 河北电子税务局怎么使用
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设