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

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

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

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

今日主题

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



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

恺撒密码

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

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

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

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

你懂了吗?

举个例子吧!


我们先看上图上半部分

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

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

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

什么是明文呢?

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

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

什么是密钥呢?

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

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

什么是密文呢?

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

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

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


什么是加密呢?

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

什么是解密呢?

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


ASCII

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

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

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

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


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


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实现恺撒密码加密和解密

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


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

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

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

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



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

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

我是猫妹,咱们下次见!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,826评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,968评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,234评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,562评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,611评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,482评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,271评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,166评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,608评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,814评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,926评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,644评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,249评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,866评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,991评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,063评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,871评论 2 354

推荐阅读更多精彩内容

  • [TOC] 常用密码技术 1 密码 1.1 发送者、接收者和窃听者 请想象一个Alice向Bob发送电子邮件的场景...
    强某某阅读 2,453评论 0 1
  • 总是习惯性将所有事情拖到ddl前一天晚上......(这是病,得治!!!!)实在是困得不行了&_&,好多内容还没写...
    小小怪吃吃吃阅读 12,504评论 0 5
  • 0x01 目录 常见编码: ASCII编码 Base64/32/16编码 shellcode编码 Quoted-p...
    H0f_9阅读 12,776评论 2 17
  • 字节和位 古典密码学 ① 替换法替换法很好理解,就是用固定的信息将原文替换成无法直接阅读的密文信息。例如将 b 替...
    ___Kevin阅读 509评论 0 0
  • 描述 恺撒密码是古罗马恺撒大帝用来对军事情报进行加解密的算法,它采用了替换方法对信息中的每一个英文字符循环替换为字...
    幸福修补匠阅读 1,271评论 0 1