《Python密码学编程》——1.5 如何使用加密轮盘加密

简介:

本节书摘来自异步社区《Python密码学编程》一书中的第1章,第1.5节,作者 [美] Al Sweigart(斯维加特),李永伦 译,更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.5 如何使用加密轮盘加密

首先,在纸上用英语写下你的消息。在这个例子里,我们将会加密这条消息:“The secret password is Rosebud.”。接着,旋转内圈,直到它的字母匹配外圈的字母。值得注意的是,外圈的字母A下面有一个点。再看看外圈里的这个点对应的内圈里的数字,这个数字就是密钥。

这个密钥就是加密或解密消息的秘密所在。任何读过这本书的人都知道凯撒加密法,就像任何读过关于锁的书的人都知道门锁的工作原理。但是,就像平常的锁和钥匙,除非他们有密钥,否则他们不能解锁(也就是解密)已被加密的消息。在图1-9中,外圈的A在内圈的数字8上,这意味着我们将会使用8这个密钥来加密我们的消息。凯撒加密法使用的密钥范围是0~25。我们的例子将会使用8这个密钥。保管好这个密钥,任何知道这条消息使用8这个密钥加密的人都能读懂密文。


1f49dc603950d2924935b49a33660376b8971319

对于我们的消息里的每个字母,我们将会找到它在外圈的位置,然后把它替换成内圈对应的字母。我们的消息的第一个字母是T(“The secret…”里的第一个“T”),于是我们在外圈找到字母T,然后找到内圈对应的字母。这个字母是B,因此,我们总会把我们的秘密消息里的T替换成B(如果我们使用8以外的其他密钥,那么明文里的T将被替换成别的字母)。

我们的消息里的下一个字母是H,它会变成P。字母E会变成M。当我们加密完整条消息时,这条消息会从“The secret password is Rosebud.”变成“Bpm amkzmb xiaaewzl qa Zwamjcl.”(见图1-10)。现在你可以把这条消息发给某人(或者给自己写下来),没人可以读懂它,除非你把密钥(数字8)告诉他们。


9f20b6facff957dfd5d4cfce57103ac9dcb2cf3f

外圈上的每个字母总是加密成内圈上相同的字母。为了节约时间,在你查找“The secret…”里的第一个T,并看到它会加密成B之后,你可以把这条消息里的每个T都替换成B。这样,一个字母你只需要查找一次。

相关文章
|
7月前
|
数据采集 前端开发 JavaScript
Python爬虫如何应对网站的反爬加密策略?
Python爬虫如何应对网站的反爬加密策略?
482 11
|
安全 Linux 数据安全/隐私保护
python知识点100篇系列(15)-加密python源代码为pyd文件
【10月更文挑战第5天】为了保护Python源码不被查看,可将其编译成二进制文件(Windows下为.pyd,Linux下为.so)。以Python3.8为例,通过Cython工具,先写好Python代码并加入`# cython: language_level=3`指令,安装easycython库后,使用`easycython *.py`命令编译源文件,最终生成.pyd文件供直接导入使用。
478 3
python知识点100篇系列(15)-加密python源代码为pyd文件
|
算法 安全 量子技术
量子计算与密码学:加密技术的新挑战
量子计算的崛起对密码学提出了新挑战。本文探讨了量子计算对现有加密技术的影响,分析了公钥密码、对称密码及通信安全所面临的威胁,并介绍了后量子加密算法等应对措施,展望了未来加密技术的发展趋势。
|
存储 安全 算法
密码学基础:加密技术如何保护我们的在线生活
密码学基础:加密技术如何保护我们的在线生活
240 7
|
算法 安全 量子技术
量子计算与密码学:加密技术的新挑战
【10月更文挑战第29天】本文探讨了量子计算对密码学的影响,分析了现有加密技术面临的挑战,并展望了未来的发展趋势。量子计算的快速发展对传统公钥加密算法(如RSA和ECC)构成巨大威胁,同时也催生了后量子加密算法和量子密钥分发等新技术。文章强调了多元化、标准化和国际合作在构建量子安全加密体系中的重要性。
|
数据安全/隐私保护 Python
python学习十一:python常用模块使用,如 加密模块pyarmor,时间模块time等
这篇文章介绍了Python中两个常用模块的使用:加密模块pyarmor用于保护代码,以及时间模块time用于处理时间相关的功能。
636 0
|
数据安全/隐私保护 Python
Python中的MD5加密“解密”
Python中的MD5加密“解密”
415 0
|
3月前
|
数据采集 机器学习/深度学习 人工智能
Python:现代编程的首选语言
Python:现代编程的首选语言
315 102
|
3月前
|
数据采集 机器学习/深度学习 算法框架/工具
Python:现代编程的瑞士军刀
Python:现代编程的瑞士军刀
343 104

推荐镜像

更多