就当为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实现相关推荐

  1. c++、python实现置换密码(栅栏技术,列置换)、替代密码(加法密码(Caesar密码),乘法密码)

    置换密码 代码如下: #置换密码 a = input('请输入明文:') print("逆序后的密文为:",a[::-1]) 结果如图: 代码如下: #栅栏技术(栏数为7) a = ...

  2. GitHub超4.1万星,最全Python入门算法来了

    本文来自公众号:超级数学建模 微信号 :supermodeling 今天,阿广给大家推荐一个好资源,一个在 Github 上超过 2.7 万星标的项目:最全算法及Python实现. 该项目主要包括两方 ...

  3. python输出字体的大小_Python密码学编程:文件的加密与解密

    在之前的章节中,编写的程序只能操作较少的信息,这些信息往往是以字符串的形式直接写在代码中的.但本章中的程序可以对整个文件进行加密和解密,文件的大小可以包括成千上万个字符. 本章要点 open()方法. ...

  4. Python加密与解密

    阅读目录 前言 加密算法分类 Python加密库 DES加密 AES加密 RSA加密 前言 据记载,公元前400年,古希腊人发明了置换密码.1881年世界上的第一个电话 保密专利出现.在第二次世界大战 ...

  5. 9本4月程序员新书,Python书就占了6本

    当春天来临,当自由的脚步离我们越来越近,当企业复工后,出版社集中上架6本Python新书,推荐给需要学习的你. 1.数据结构和算法 Python和C++语言描述 戴维·M.瑞德(David,M.,Re ...

  6. 【自己动手设计一个简单的加密算法Python】

    一 加密算法设计 本文设计的加密算法为对称加密中的分组加密算法,算法参考Feistel结构进行设计,分组长度为128比特,密钥长度为128比特,基于类Feistel的加密子结构,迭代次数为8次,每次迭 ...

  7. python 写的一些ctf脚本

    python 写的一些ctf题脚本记录 文章目录 python 写的一些ctf题脚本记录 misc 16进制 凯撒 4进制 置换密码 Unicode web计算 rsa base64实现 sql注入布 ...

  8. 最全Python算法入门

    本文经AI新媒体量子位(ID:QbitAI)授权转载,转载请联系出处 问耕 发自 凹非寺 [导读]Github上超过6.8万星标:最全算法及Python实现.该项目的算法包括排序.搜索等经典算法,描述 ...

  9. GitHub超 7.9 万星,最全Python入门算法!

    (给机器学习算法与Python学习加星标,提升AI技能) 来源:github 本文由新智元(AI_era)整理 今天向大家推荐一个好资源,用Python实现所有算法.该项目在Github上已经获得了超 ...

  10. 收藏!最全的可视化学入门算法教程(Python实现)

    点击"Python编程与实战",选择"置顶公众号" 第一时间获取 Python 技术干货! 新智元报道 来源:Github,编辑:元子 [导读]Github上超 ...

最新文章

  1. JSON是什么,为什么这么流行?
  2. ActionScript 3.0 优化
  3. js 设置password placeholder样式_装机必备!超级详细的BIOS设置图解
  4. wpf Webbrowser 乱码问题及弹窗被遮挡
  5. 10月23日见?疑似魅族16T预热海报曝光:定位大屏娱乐旗舰
  6. 使用.NET Core进行Linux编程3:简介和第2章
  7. SpringBoot + Redis + Shiro 实现权限管理
  8. delphi连接SQL2005做的数据库管理系统的一些部署问题
  9. 陈希孺《概率论与数理统计》读书笔记
  10. 校园网络构建方案设计
  11. 机器学习实验二 决策树
  12. ios html5不显示图片,为什么iOS上的Safari不显示我的HTML5视频海报?
  13. 如需定义元素内容与边框间的空间,可使用 padding 属性,并可使用负值?
  14. 系统架构中常见问题及解决方案
  15. android 仿微信朋友圈发布动态功能
  16. 通信电子电路(4)----高频功率放大器(2)
  17. uniCloud更新APP
  18. 【深度学习】步态识别-论文阅读:(T-PAMI-2021)综述:Deep Gait Recognition
  19. 日语五十音图表 日语学习
  20. Qomo OpenProject Field Test 3发布!

热门文章

  1. B001 - 基于STM32的智能生态鱼缸
  2. ​分享 17 款你可能会用的上 Chrome 插件
  3. 想成为一名黑客怎么办?
  4. rust ffi理解
  5. Caused by: java.lang.NoSuchMethodError
  6. 提神醒脑 MVP、MVVM 关系精讲
  7. uchome开发入门
  8. CentOS 7 搭建CA服务器 实现HTTPS取证
  9. DICOM中窗宽窗位含义
  10. DLNA实现本地媒体服务器