什么是恺撒密码?如何用Python实现它(36)

这篇具有很好参考价值的文章主要介绍了什么是恺撒密码?如何用Python实现它(36)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

小朋友们好,大朋友们好!

我是猫妹,一名爱上Python编程的小学生。

欢迎和猫妹一起,趣味学Python。

今日主题

猫妹目前在看的,ycl Python等级考试五级教材,有一章是介绍恺撒密码的。

什么是恺撒密码?如何用Python实现它(36)

什么是恺撒密码?如何用Python实现它(36)

今天,咱们就学习下什么是恺撒密码,如何用Python实现它。

恺撒密码

在密码学中,恺撒密码(英语:Caesar cipher),或称恺撒加密、恺撒变换、变换加密,是一种最简单且最广为人知的加密技术。

它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。

例如,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推。

这个加密方法是以罗马共和时期恺撒的名字命名的,当年恺撒曾用此方法与其将军们进行联系。

你懂了吗?

举个例子吧!

什么是恺撒密码?如何用Python实现它(36)

我们先看上图上半部分

明文ABCD~XYZ,密钥(加密规)则是+3,那么密文是DEF~XYZABC

加密规则可以使加3,也可以使加任意整数,如果超过26个字符,则需要对26取余。也就是上图的下半部分。

什么是恺撒密码?如何用Python实现它(36)

什么是恺撒密码?如何用Python实现它(36)

明文、密钥、密文、加密、解密

什么是明文呢?

没有加密的文字(或者字符串),一般人都能看懂的意思,属于密码学术语。

在通信系统中它可能是比特流,如文本、位图、数字化的语音或者数字化的视频图像等。

什么是密钥呢?

密钥是一种参数,它是在明文转换为密文或将密文转换为明文的算法中输入的参数。

密钥分为对称密钥与非对称密钥。

什么是密文呢?

加了密的文字,明文是加密之前的文字。

加密这个词有时指密文,但通常用来指加密的方法。对明文施加某种伪装或变换后的输出。

也可理解为不可直接理解的字符或比特集。但可通过算法还原的被打乱的消息,与明文相对。

什么是恺撒密码?如何用Python实现它(36)

什么是加密呢?

将明文转换为密文的过程就是加密。

什么是解密呢?

将密文转换为明文的过程就是加密。

什么是恺撒密码?如何用Python实现它(36)

ASCII

ASCII (American Standard Code for Information Interchange):美国信息交换标准代码是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是最通用的信息交换标准,并等同于国际标准 ISO/IEC 646。

ASCII第一次以规范标准的类型发表是在1967年,最后一次更新则是在1986年,到目前为止共定义了128个字符。

这128个字符分为可显示字符和控制字符。

可显示字符,其编号范围是32-126(0x20-0x7E),共95个字符。

什么是恺撒密码?如何用Python实现它(36)

控制字符,其编号范围是0-31和127(0x00-0x1F和0x7F),共33个字符。

什么是恺撒密码?如何用Python实现它(36)

26个字符大小写用的就是ASCII编码。

a~z,0x61~0x7a。

A~Z,0x41~0x5a。

chr()和ord()

chr()函数

用一个范围在 range(256)内的(就是0~255)整数作参数,返回一个对应的字符。返回值是当前整数对应的 ASCII 字符。

该函数的返回值为字符串形式。例如,输入:chr(90) ,输出为 ‘Z’ 。

ord()函数

与chr()函数对应,输入ASCII字符表中字符的字符串形式,返回在字符表中的排序位次。

例如,输入:ord(“Z”),输出为 90 。

用chr和ord打印26字母大小写以及其ASCII值

什么是恺撒密码?如何用Python实现它(36)

什么是恺撒密码?如何用Python实现它(36)

Python实现恺撒密码加密和解密

有了之前的学习,我们可以用Python实现恺撒密码的加密和解密啦!

什么是恺撒密码?如何用Python实现它(36)

假设咱们要对26个英文字符(包括大写和小写)进行加密,加密方式凯斯密码,加密密钥是+4,解密密钥是-4。

加密密钥和解密密钥不同,属于非对称加密。

如果相同,属于对称加密。

程序逻辑:先判断字母是小写还是大小,然后以数值形式计算下相对于首字母的偏移量,再加上密钥和首字母数值,最后以字符形式输出。

什么是恺撒密码?如何用Python实现它(36)

什么是恺撒密码?如何用Python实现它(36)

好了,我们今天就学到这里吧!

如果遇到什么问题,咱们多多交流,共同解决。

我是猫妹,咱们下次见!文章来源地址https://www.toymoban.com/news/detail-435459.html

到了这里,关于什么是恺撒密码?如何用Python实现它(36)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 171.【华为OD机试】寻找身高相近的小朋友(排序算法实现Java&Python&C++&JS)

    记得收藏本专栏顶置的华为OD机试指南宝典! 🚀你的旅程将在这里启航!本专栏所有题目均包含优质解题思路,高质量解题代码,详细代码讲解,助你深入学习,深度掌握!

    2024年03月19日
    浏览(51)
  • 微信朋友圈怎么定时发送?微信朋友圈定时发送有什么优势?

    刷朋友圈已经成为大部分人日常中不可缺少的一件事,同时也是企业用来触达客户的重要渠道。下面一起来了解一下微信朋友圈定时发送的优势有哪些,还有怎么定时发朋友圈吧。 定时发朋友圈的优势有哪些? 1、让企业能够更好地管理自己的宣传信息 2、有助于提高企业的

    2024年02月08日
    浏览(38)
  • 如何用Python实现一个简单的爬虫?

    作为一名程序员,我深知爬虫技术在现代互联网领域中的重要性。因此,今天我来分享一下如何用Python实现一个简单的爬虫。 简单来说,爬虫就是一种自动化程序,通过网络协议来获取特定网站的信息,例如图片、文字、视频等等。这些信息可以是公开数据,也可以是需要用

    2024年02月07日
    浏览(43)
  • Github 标星 4w+,如何用 Python 实现所有算法

    点击蓝色“五分钟学算法”关注我哟 加个“星标”,一起学算法 编译 | 周素云、蒋宝尚 来源 | 大数据文摘出品 几位印度小哥在 GitHub 上建了一个各种 Python 算法的新手入门大全。从原理到代码,全都给你交代清楚了。为了让新手更加直观的理解,有的部分还配了动图。 标

    2023年04月08日
    浏览(41)
  • 如何用实现python给视频,给一段视频配上字幕

    我最近在工作的实际开发中,遇到了一个需求,用实现python给视频,给一段视频配上字幕,无从那个下手,最终请教了代码生成的AI工具,把这个需求实现了,在次记录供大家参考, 我解决问题之后,觉得还是把这些坑都写清楚,方便 大家少踩坑呢。 为了实现这个任务,我

    2024年02月13日
    浏览(37)
  • 如何用Python实现从pdf文件精准抓取数据生成数据库!

    要从PDF文件中提取数据并生成数据库,你可以使用Python中的一些库和工具来实现。 1、安装必要的库: 确保已安装所需的库。除了之前提到的 PyPDF2 、 pdfminer.six 和 pdftotext 之外,你可能还需要其他的库来处理提取的数据和数据库操作。例如,你可以使用 re 库进行正则表达式匹

    2024年02月11日
    浏览(46)
  • 笔记36:CNN的多通道卷积到底是什么样的

    总结: (1)输入卷积层的feature_map的通道数,就是该卷积层每个卷积核所含有的通道数 (2)输出卷积层的feature_map的通道数,就是该卷积层所含有的卷积核的个数 a a a a 解释:【假设  ---  输入卷积层的 feature_map 通道数为5】 可以知道:因为该卷积层中含有100个不同的卷积

    2024年02月07日
    浏览(37)
  • 【区块链时代】如何用Python实现区块链中的区块结构(快速入手01)

    区块结构的详细介绍,容易入手: 【区块链时代】如何理解区块链中共识机制以及在区块链中分叉是如何解决的 结果如下: 在下一篇博客中将重点介绍节点之间通信过程中如何实现各个功能模块。

    2024年02月15日
    浏览(47)
  • 服务器带宽独享跟共享有什么区别103.36.166.x

    独享带宽 独享带宽针对对带宽有较高的要求,其业务的内容和性质决定只有使用独立的带宽资源才能满足品质的需求,而这种只给单独客户使用的带宽资源称为独享带宽. 使用独享带宽,整个带宽资源归属于一个客户 独享带宽的优点是可自由使用带宽量,能保证速度和网络质

    2024年02月14日
    浏览(42)
  • Python|送给朋友的生日祝福

    生活中除了给男神女神表白,还会遇到朋友过生日,所以小编今天就给大家带来了一个送给朋友的生日祝福程序。 本次程序还是用python编写,第三方库用到了pygame。安装方式在命令行运行以下代码即可。 首先是导入所需模块以及初始化pygame: 其中的pygame.mixer.init()为pygame播放

    2023年04月12日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包