置换密码及其python实现
就当为CSDN这方面的python开源做点贡献哈哈哈
置换密码
- 算法原理
- python代码
#置换密码
class PermutationCipher:def __init__(self,d:dict):self.d=d#置换-加密函数(小写字母表示明文,大写字母表示密文)v=''.join(chr(i) for i in range(97,123))"""d=dict(zip(''.join(chr(i) for i in range(97,123)),['X','N','Y','A','H','P','O','G','Z','Q','W','B',\'T','S','F','L','R','C','V','M','U','E','K','J',\'D','I']))""""""其他置换:d2=dict(zip(v,['N','X','A','Y','P','H','G','O','Q','Z','B','W',\'S','T','L','F','C','R','M','V','E','U','J','K',\'I','D']))"""k=[]for i in v.upper():k.append(list(d.keys())[list(d.values()).index(i)])self.invd=dict(zip(v.upper(),k))#逆置换-解密函数def encrypt(self,m:str):#明文m,字符串形式m=m.lower()m=m.replace(' ','')s=''for i in m:s+=self.d[i]print('The ciphertext is:',s)def decrypt(self,m:str):#密文m,字符串形式m=m.upper()s=''for i in m:s+=self.invd[i]print('The plaintext is:',s)
- 实现过程
(1)使用所给解密函数来解密下面的密文:‘MGZVYZLGHCMHJMYXSSFMNHAHYCDLMHA’
①生成密码器
创建置换密码类的对象,置换函数为d:
②解密
调用.decrypt(m)函数对‘MGZVYZLGHCMHJMYXSSFMNHAHYCDLMHA’进行解密:
(2)另取一置换对Information Security进行加解密
置换d2为’a’到’z’分别对应’N’,‘X’,‘A’,‘Y’,‘P’,‘H’,‘G’,‘O’,‘Q’,‘Z’,‘B’,‘W’,‘S’,‘T’,‘L’,‘F’,‘C’,‘R’,‘M’,‘V’,‘E’,‘U’,‘J’,‘K’, ‘I’,‘D’
①生成密码器
②加密
对‘informationsecurityandcryptography’进行加密:
③解密
对得到的密文进行解密:
置换密码及其python实现相关推荐
- c++、python实现置换密码(栅栏技术,列置换)、替代密码(加法密码(Caesar密码),乘法密码)
置换密码 代码如下: #置换密码 a = input('请输入明文:') print("逆序后的密文为:",a[::-1]) 结果如图: 代码如下: #栅栏技术(栏数为7) a = ...
- GitHub超4.1万星,最全Python入门算法来了
本文来自公众号:超级数学建模 微信号 :supermodeling 今天,阿广给大家推荐一个好资源,一个在 Github 上超过 2.7 万星标的项目:最全算法及Python实现. 该项目主要包括两方 ...
- python输出字体的大小_Python密码学编程:文件的加密与解密
在之前的章节中,编写的程序只能操作较少的信息,这些信息往往是以字符串的形式直接写在代码中的.但本章中的程序可以对整个文件进行加密和解密,文件的大小可以包括成千上万个字符. 本章要点 open()方法. ...
- Python加密与解密
阅读目录 前言 加密算法分类 Python加密库 DES加密 AES加密 RSA加密 前言 据记载,公元前400年,古希腊人发明了置换密码.1881年世界上的第一个电话 保密专利出现.在第二次世界大战 ...
- 9本4月程序员新书,Python书就占了6本
当春天来临,当自由的脚步离我们越来越近,当企业复工后,出版社集中上架6本Python新书,推荐给需要学习的你. 1.数据结构和算法 Python和C++语言描述 戴维·M.瑞德(David,M.,Re ...
- 【自己动手设计一个简单的加密算法Python】
一 加密算法设计 本文设计的加密算法为对称加密中的分组加密算法,算法参考Feistel结构进行设计,分组长度为128比特,密钥长度为128比特,基于类Feistel的加密子结构,迭代次数为8次,每次迭 ...
- python 写的一些ctf脚本
python 写的一些ctf题脚本记录 文章目录 python 写的一些ctf题脚本记录 misc 16进制 凯撒 4进制 置换密码 Unicode web计算 rsa base64实现 sql注入布 ...
- 最全Python算法入门
本文经AI新媒体量子位(ID:QbitAI)授权转载,转载请联系出处 问耕 发自 凹非寺 [导读]Github上超过6.8万星标:最全算法及Python实现.该项目的算法包括排序.搜索等经典算法,描述 ...
- GitHub超 7.9 万星,最全Python入门算法!
(给机器学习算法与Python学习加星标,提升AI技能) 来源:github 本文由新智元(AI_era)整理 今天向大家推荐一个好资源,用Python实现所有算法.该项目在Github上已经获得了超 ...
- 收藏!最全的可视化学入门算法教程(Python实现)
点击"Python编程与实战",选择"置顶公众号" 第一时间获取 Python 技术干货! 新智元报道 来源:Github,编辑:元子 [导读]Github上超 ...
最新文章
- JSON是什么,为什么这么流行?
- ActionScript 3.0 优化
- js 设置password placeholder样式_装机必备!超级详细的BIOS设置图解
- wpf Webbrowser 乱码问题及弹窗被遮挡
- 10月23日见?疑似魅族16T预热海报曝光:定位大屏娱乐旗舰
- 使用.NET Core进行Linux编程3:简介和第2章
- SpringBoot + Redis + Shiro 实现权限管理
- delphi连接SQL2005做的数据库管理系统的一些部署问题
- 陈希孺《概率论与数理统计》读书笔记
- 校园网络构建方案设计
- 机器学习实验二 决策树
- ios html5不显示图片,为什么iOS上的Safari不显示我的HTML5视频海报?
- 如需定义元素内容与边框间的空间,可使用 padding 属性,并可使用负值?
- 系统架构中常见问题及解决方案
- android 仿微信朋友圈发布动态功能
- 通信电子电路(4)----高频功率放大器(2)
- uniCloud更新APP
- 【深度学习】步态识别-论文阅读:(T-PAMI-2021)综述:Deep Gait Recognition
- 日语五十音图表 日语学习
- Qomo OpenProject Field Test 3发布!