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

代码块

代码块语法遵循标准markdown代码,例如:

from operator import mod
#ceasar加密算法
def ceasarC(a):L=['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']#把英文字母和十进制数字的对应关系存进一个数组中s=list(a)#把字符串a变成字符数组p=[]for k in s:#逐个遍历s中的元素m=L.index(k)#找到数组s中元素k对应数组L中的位置#进行ceasar加密if m>=0 and m<=23:c=mod(m+3,26)p.append(L[c])elif m>23:c=mod(25-m,26)p.append(L[c])str1=''.join(p)print(str1)
print('Ceasar加密:')
ceasarC('iloveyou')
print('--------------------------------------------------')
print('--------------------------------------------------')
def ceasarM(b):L=['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']#把英文字母和十进制数字的对应关系存进一个数组中s=list(b)p=[]for k in s:x=L.index(k)if x<2:m=mod(23+x,26)p.append(L[m])elif x>=2 and x<=25:m=mod(x-3,26)p.append(L[m])str2=''.join(p)print(str2)
print('Ceasar解密:')
ceasarM('loryhbrx')

实验结果

文章目录

  • 单表代换密码之Caesar密码的代码实现
      • 代码块
      • 实验结果
      • 数学公式
    • 总结

数学公式

  • Caesar密码的加密代换和解密代换分别为:
    c=E(m)≡m+3(mod 26),0<=m<=25
    m=D(c≡c-3(mod 26),0<=c<=25

总结

通过本次练习,让我对python中的列表有了更深的了解,同时还掌握了求mod的方法以及字符串与数组之间的互换方法等。

##浏览器兼容

  1. 目前,本编辑器对Chrome浏览器支持最为完整。建议大家使用较新版本的Chrome。
  2. IE9以下不支持
  3. IE9,10,11存在以下问题
    1. 不支持离线功能
    2. IE9不支持文件导入导出
    3. IE10不支持拖拽文件导入

单表代换密码之Caesar密码的代码实现相关推荐

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

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

  2. JS实现单表代换密码加密

    单表代换加密算法是比较经典的加密算法,事先准备好字母代换的相应对照表,即可实现加密解密,这里我们用JS进行实现. 明文字母与密文字母对应关系: 明文 a b c d e f g h i j k l m ...

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

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

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

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

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

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

  6. 简单密码(Caesar密码)--C++实现

    题目描述 Julius Caesar曾经使用过一种很简单的密码. 对于明文中的每个字符,将它用它字母表中后5位对应的字符来代替,这样就得到了密文. 比如字符A用F来代替.如下是密文和明文中字符的对应关 ...

  7. mysql写了代码如何看表_mysql之单表查询__我自己敲的代码

    插一个 删: DELETE *  from  表 where +条件    #删除的时候一定要加条件,即where后边的东西,否则会把表中数据全部都删除掉 1.select * from person ...

  8. 古典密码算法 凯撒(Caesar)密码,又叫循环移位密码

    古典密码算法曾被广泛应用,大都比较简单,使用手工和机械操作来实现加密和解密.它的主要应用对象是文字信息,利用密码算法实现文字信息的加密和解密.下面介绍两种常见的具有代表性的古典密码算法,以帮助读者对密 ...

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

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

最新文章

  1. python第七章动手试一试_Python学习3
  2. java取geosever数据,终于搞定了GeoServer的WFS查询
  3. python 求两条曲线的交点_这几种问法都是考察张角问题,高考数学圆锥曲线的焦点弦张角定理...
  4. 315曝光不良奸商 对企业不能罚酒三杯
  5. python输出读取的空格数目_Python 3基础教程: 输入和输出具体代码实例
  6. mac 上iterm终端显示中文为乱码解决方案
  7. PYG解密小组的Visual Assist X插件完全卸载
  8. 让传感器数据在三维地图上显示,更直观,更震撼!
  9. 成功真正需要什么:情商德商及体商 别高估智商
  10. STM32F03 SPI通信 连续传送24位数据(DMA或者不用)
  11. 可视化大屏是什么?有哪些应用场景?
  12. 执行款不足以清偿全部债务时应当如何抵充
  13. 线代笔记:行列式的性质及定理
  14. Deepin安装应用
  15. (深度神经网络多.py文件)python打包过程遇到的问题记录
  16. 类C语言--栈与队列习题:设从键盘输入一整数的序列:a1, a2, a3,…,an,试编写算法实现:用栈结构存储输入的整数,当ai≠-1时,将ai进栈;当ai=-1时,输出栈顶整数并出栈。算法应对异常
  17. 数据库中,把角色的权限授权给用户总是报错,角色名附近有语法错误的原因
  18. 315Mhz、433Mhz无线遥控信号的解码分析和模拟
  19. Android:这是一份非常详细的MVP+Rxjava2.0+Retrofit2.0相结合举例RecyclerView的实战篇章
  20. CIFAR10图像识别

热门文章

  1. 搜索引擎优化大师的SEO总结
  2. 别人的18岁,恐怕会碾压你的38岁
  3. python数据采集及可视化
  4. Dragon slayer(搜索板题)
  5. 机器视觉LED灯珠检测案例
  6. 2018 Google I/O 大会不得不了解一下
  7. 一套完整的别墅有你物联智能家居要多少钱?看到最后惊呆了
  8. MyBatis-Plus快速入门
  9. 鲍尔默退休:Wintel帝国走向崩溃还是重构?
  10. 百分百医学论文发表网是个骗子网站