1.凯撒密码本质:

凯撒密码:
本质:
A B C D EA B C D E移动一定的位置后,获取对应移动后的字符,这里面的‘偏移量就是2也就是shift=2
计算机实现:
用一个字典 keydic={原始字符:移动位置后的字符}来实现密码的加密和解密keydic={}num=0for char in upperchar5:keydic[char]=upperchar5[(num+shift)%5]num+=1return keydic

======================================================================

2.加密代码实现或者应用【代码注释版本】

import stringdef temp():# print(string.ascii_letters)# print(string.ascii_lowercase)# print(string.ascii_uppercase)# 获取26个英文大写字母的字符串print(string.ascii_uppercase)print(len(string.ascii_uppercase))print(type(string.ascii_uppercase))"""
凯撒密码:
本质:
A B C D EA B C D E移动一定的位置后,获取对应移动后的字符,这里面的‘偏移量就是2也就是shift=2生成key
代码说明;
upperchar26=string.ascii_uppercase  #获取26个大写字母的字符串
keydic={}  获取一个字典keydic={原始字符:移动后的字符},后期加密或者解密使用的对应字典
gennerate_key(shift)  里面的shift是偏移量
keydic[char]=upperchar26[(num+shift)%len(upperchar26)]-->keydic={原始字符:移动后的字符}shift=2后
generate_key产生的结果,都是偏移了两位
{'A': 'C', 'B': 'D', 'C': 'E', 'D': 'F', 'E': 'G', 'F': 'H', 'G': 'I', 'H': 'J', 'I': 'K', 'J': 'L', 'K': 'M', 'L': 'N', 'M': 'O', 'N': 'P', 'O': 'Q', 'P': 'R', 'Q': 'S', 'R': 'T', 'S': 'U', 'T': 'V', 'U': 'W', 'V': 'X', 'W': 'Y', 'X': 'Z', 'Y': 'A', 'Z': 'B'}
"""
def generate_key(shift):upperchar26=string.ascii_uppercasekeydic={}num=0for char in upperchar26:keydic[char]=upperchar26[(num+shift)%len(upperchar26)]num+=1return keydic"""
加密函数,参数message是需要加密的字符串
从’message‘需要加密的字符串中遍历取出所有字符串--->
判断取出的每个字符是不是在keydic这个字典中,如果在里面就是取出字典中对应偏移量的字符
如果没有在里面就是保持原来的字符,“ABCD-EFGH-JKLM”中的’-‘就是保持原来的样子"""
def encrypt(keydic,message):ciphers=""for c in message:if c in keydic:ciphers+=keydic[c]else:ciphers+=creturn ciphersif __name__ == '__main__':crykeydic=generate_key(2)# print(crykeydic)#待加密的字符messages="ABCD-EFGH-JKLM"#进行加密处理,获取加密后的字符ciphers=encrypt(crykeydic,messages)print(ciphers)

3.实现代码

def generate_key(shift):upperchar26=string.ascii_uppercasekeydic={}num=0for char in upperchar26:keydic[char]=upperchar26[(num+shift)%len(upperchar26)]num+=1return keydicdef encrypt(keydic,message):ciphers=""for c in message:if c in keydic:ciphers+=keydic[c]else:ciphers+=creturn ciphersif __name__ == '__main__':crykeydic=generate_key(2)# print(crykeydic)#待加密的字符messages="ABCD-EFGH-JKLM"#进行加密处理,获取加密后的字符ciphers=encrypt(crykeydic,messages)print(ciphers)

运行结果;CDEF-GHIJ-LMNO

凯撒密码的实践使用-1相关推荐

  1. python凯撒密码详解_Python基础题目集--课堂案例

    这些案例均为在校期间学习<python基础编程>课程的案例,适合初学者练手~ 1.输入分数,返回等级 ''' 分数区间为0~100,等级:A(>=90).B(>=80).C(& ...

  2. 凯撒密码C语言去掉空格字符,凯撒密码的问题C语言

    满意答案 xlaijing19 推荐于 2016.04.01 采纳率:43%    等级:12 已帮助:6257人 最低0.27元开通文库会员,查看完整内容> 原发布者:耿万德 凯撒密码是一种非 ...

  3. python凯撒密码加密写入文件_Python用户名密码登录系统(MD5加密并存入文件,三次输入错误将被锁定)及对字符串进行凯撒密码加解密操作...

    #-*- coding: gb2312 -*-#用户名密码登录系统(MD5加密并存入文件)及对字符串进行凯撒密码加解密操作#作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/k ...

  4. CTF-不一样的凯撒密码

    呀呼 首先先了解一下正常的凯撒密码, 它的原理是把字母向后移位; 思路 不一样的凯撒的话就要把他们转化成ASC码来推导; 拿这次省赛的一个题目来说吧; 下载好文件 打开: bhag{asb_zsz_v ...

  5. rust(58)-凯撒密码

    在密码学中,凯撒密码(英语:Caesar cipher),或称凯撒加密.凯撒变换.变换加密,是一种最简单且最广为人知的加密技术.它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一 ...

  6. 《Python游戏编程快速上手》第十四章----凯撒密码

    <Python游戏编程快速上手>的第十二章主要讲了笛卡尔坐标系的基本数学知识,我就不重现了:然后第十三章主要是一个笛卡尔坐标系的小应用,这个小应用也是非常简单的,所以我就不重现了. 今天主 ...

  7. 密码学入门1——凯撒密码和三重DES加解密

    实验目的 1.完成第一个入门加解密--凯撒密码 2.完成当下较为流行的三重DES加解密技术 3.熟悉所学的实际运用方向 实验准备 硬件:计算机或笔记本电脑 操作系统:Mac操作系统 IDE环境:Ecl ...

  8. 凯撒密码c语言小写字母,凯撒密码c(c语言编程凯撒密码)

    凯撒密码c(c语言编程凯撒密码) 2020-05-15 13:09:51 共10个回答 #include#includeintmain(){charsave[10][30];inta,b,i,j;sc ...

  9. 凯撒密码pythin密码_凯撒密码术

    凯撒密码pythin密码 Caesar cipher is one of the well-known techniques used for encrypting the data. Althoug ...

  10. python凯撒密码实现_密码:凯撒密码及其Python实现

    python凯撒密码实现 Before we start let's some basic terminology... 在开始之前,让我们先介绍一些基本术语... The art and scien ...

最新文章

  1. HYSBZ-1951 古代猪文 【好题】
  2. 这公司需要再利用CPU热能:于是淘汰i7换AMD Ryzen
  3. Hadoop完全分子式环境搭建—问题及解决办法
  4. mysql多实例复制,Mysql实例使用Rotate Master实现MySQL 多主复制的实现方法
  5. 使用Visual Studio 2010 一步一步创建Powershell Module 和 Cmdlet
  6. (转载)分享常用的GoLang包工具
  7. 利用线性代数的方法求斐波那契数列的通项
  8. 计算机视觉论文-2021-06-14
  9. 新年元旦海报设计模板|具有浓厚中国风味的画面
  10. 一个简单的线程池设计方案
  11. ASP.NET MVC搭建项目后台UI框架—1、后台主框架
  12. [转载] 360分布式存储系统Bada的设计和应用
  13. 微信小程序使用animation动画实现消息从左向右滚动
  14. 图测1.0 在线地图测量与高清卫星图App 发布
  15. Apache NIFI入门(读完即入门)
  16. 浅谈php国际(I18N)以及config包的使用
  17. 亚马逊是如何颠覆商业软件高昂价格这座”柏林墙”的
  18. 解决:Win10 显示无法连接到Internet,但是还能上网
  19. ARM汇编指令EQU与等号“=”的异同
  20. 传感器与检测技术实验系统

热门文章

  1. 有人说过世界是丑陋的,但是我们的目的就是要找出那些好的东西,然后好好珍惜...
  2. JavaScript学习笔记——对表单的操作
  3. android.content.SharedPreferences.edit()
  4. PSP模块Tensorflow/Pytorch实现小结
  5. 【SQL】实验四 数据库的安全性、数据库备份、数据库恢复等机制
  6. 专题二——数学问题与简单DP
  7. 多个Excel文件合并成一个文件
  8. android实现控件的手势缩放、移动以及双击还原
  9. mysql php 空格函数_MySQL_mysql 强大的trim() 函数,mysql中的去除左空格函数: LTRI - phpStudy...
  10. mybatis批量写入及批量更新