首页 > 编程知识 正文

python用户名和密码登录,python密码登录程序

时间:2023-05-06 14:26:03 阅读:57757 作者:3933

本文主要内容:

密码学是什么; 代码和加密法DFY加密法; 加密轮盘; 用St. Cyr滑动条纸和钢笔加密; “双重强度”加密。我忍不住偷听,可能因为我在窃听。——佘名

1看看什么是密码学,下面两个字母。

左边的文字是秘密消息。 此消息为加密或密码。解密即不知道如何恢复普通英语消息的人不能阅读。 本书介绍了如何加密和解密消息。

右侧的信息只是随机乱码,不包含任何有意义的内容。 加密你写的邮件是一种对别人保密的方法,即使你得到了加密的邮件。 这看起来和随机乱码完全一样。

密码学是一门使用密码的科学。密码编译者是一个使用密码进行研究的人。 本书告诉你成为密码编译者需要知道的事情。

当然,这些秘密信息并不总是保持秘密状态。 是能够解密密码破译者密码并读取其他人的加密信息的人。 解密者也称为代码破译者(code breaker )或代码黑客) Hacker )。 本书还告诉我们成为解密者需要知道的事情。 很遗憾,你在本书里学到的解读方法不会给你添麻烦。

与间谍、士兵、黑客、海盗、贵族、商人、暴君、政治活动家、网购者和可靠朋友共享秘密的人依靠密码学,确保是秘密还是秘密。

二维码和加密法19世纪初发明的电报允许通过横贯大陆的电线即时通信,这比拿一袋信骑马快得多。 但是电报不能直接发送纸上写的文字,只能发送电子脉冲。 短脉冲称为“点”,长脉冲称为“线”。

图1-1 Samuel Morse 1791年4月27日—1872年4月2日

图1-2 Alfred Vail 1807年9月25日—1859年1月18日

要将这些点和线条转换为英文,代码(或代码)系统将英文翻译为电子脉冲代码(3358www.Sina.com/),另一侧将电子脉冲翻译为英文(http://www ) 用于电报(后来也用于无线电)的代码被称为莫斯码(Morse Code ),由Samuel Morse (见图1-1 )和Alfred Vail (见图1-2 )发明。 用电报按钮敲击点和线,电报员可以把英语信息发送给世界另一边的某人。 几乎是实时的(如果想学习图1-3所示的蚊式代码,请访问http://invpy.com/morse。 )

图1-3国际莫斯码圆点和线条表示文字

通过检查编码代码符号的含义,任何人都应该能够解密加密的消息。

3在学习使用计算机编程加密和解密创建纸张加密轮盘之前,让我们先看看如何使用简单的纸张工具手动完成这项工作。 将可以理解的英语字符65http://www.Sina.com/改为隐藏密码的乱码65http://www.Sina.com/很容易。 3358www.Sina.com/(cipher )是一组转换明文和密文的规则。 这些规则通常使用一个密钥。 在本书中,您将学习各种加密方法。

学习ddfy密码法吧。 这个加密法在2000年前被ddfy大王使用过。 幸运的是,学习它既简单又容易。 坏消息是,正因为简单,破译密码的人也很容易破译。 但是,我们可以把它当成一个简单的练习。 维基有更多关于ddfy加密方法的信息。 [ http://en.Wikipedia.org/wiki/Caesar _ cipher ] [ http://en.Wikipedia.org/wiki/Caesar _ ]

要使用ddfy加密方法将明文转换为密文,必须创建解码(别名代码是可以理解的,而且是公开发布的。)。 您可以复制本文档中描述的加密轮盘(请参见图1-4和图1-5 ),也可以打印位于http://invpy.com/cipherwheel上的加密轮盘。 剪切这两个圆,将它们重叠,参见图1-6至图1-8所示的步骤。

图1-4加密轮盘内圈

图1-5请勿从本手册http://invpy.com/cipherwheel打印加密轮盘的外圈。 从此页面或复制

图1-6剪切加密轮盘

图1-7切下的圆

图1-8完成后的加密轮盘

切下两个圆圈后,把小的放在大的中间。 在两个圆之间插入销或头针,以便可以在上面旋转。 现在你有用ddfy加密法加密信息所需的工具。

4如果手边没有虚拟加密轮盘剪刀和复印机,也可以使用在线虚拟加密轮盘(参见图1-9 )。 在浏览器中打开http://invpy.com/cipherwheel,使用软件版的加密轮盘赌。

p>

图1-9 在线加密轮盘

要旋转轮盘,用鼠标在上面点击一下,然后移动鼠标,直到你想要的密钥在适当的位置上。再次点击鼠标,就可以停止轮盘的旋转。

5 如何使用加密轮盘加密

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

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

对于我们的消息里的每个字母,我们将会找到它在外圈的位置,然后把它替换成内圈对应的字母。我们的消息的第一个字母是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)告诉他们。

图1-10 用加密轮盘加密的消息

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

6 如何使用加密轮盘解密

要解密一条密文,从内圈向外圈走。假设你从一个朋友那里收到这条密文:“Iwt ctl ephhldgs xh Hldgsuxhw.”。你和其他人都不能解密它,除非你知道密钥(或者除非你是个很聪明的黑客)。但你的朋友决定使用15这个密钥加密自己发给你的每条消息。

把外圈上的字母A(下面有个点的那个)对准内圈上带有数字15的字母(即字母P)。密文里的第一个字母是I,因此,我们在内圈上找I,看看旁边外圈上的字母,是T。密文里的W会解密成字母H。一个接一个地,我们把密文里的每个字母解密成明文:“The new password is Swordfish.”。

如果你使用不正确的密钥,比如16,而不是正确的密钥15,解密的消息是:“Sgd mdv ozrrvnqc hr Rvnqcehrg.”。这个明文根本看不懂。除非使用正确的密钥,否则被解密的消息永远不会是可理解的英语。

7 另一个加密法工具:St. Cyr滑条

还有一个纸质工具可以用来做加密和解密,这个纸质工具叫做St. Cyr滑条。它很像密钥索引轮盘,但它是直的。

复印本页的St. Cyr滑条图片(或者从http://invpy.com/stcyrslide打印),剪下三条纸带,如图1-11所示。

图1-11 复印这些纸带制作St. Cyr滑条

连接两条字母表纸带,把mldhy在另一条纸带上的白框Z旁边。割开主滑框两边的裂缝,使连接起来的纸条可以穿过它。最后看起来应该是如图1-12所示。

图1-12 完成后的St. Cyr滑条

当黑框A在字母H(数字7)下面时,如果要加密,就在长纸带上找出明文字母的位置,然后把它替换成在它上面的字母。如果要解密,就在上面那行字母里找出密文字母,然后把它替换成下面的长纸带上的字母。

大框两边的裂缝会隐藏其他的字母,这样,对于任何密钥,滑条上的每个字母你只会看到一个。

St. Cyr滑条的好处是更容易找到你要找的字母,因为它们都在同一条直线上,不像加密轮盘那样有时候会倒转过来。

虚拟的可打印的St. Cyr滑条可以在http://invpy.com/stcyrslide找到。

8 A组练习

你可以在http://invpy.com/hackingpractice1A找到练习。

不要忽略练习!

本书没有足够的篇幅列出所有练习,但它们仍然重要。

仅仅阅读关于黑客技术和编程的资料不会让你成为一名黑客。你需要实践!

9 不用纸质工具做加密

在使用ddfy加密法做加密和解密时,加密轮盘和St. Cyr滑条都是很好的工具。但我们只用铅笔和纸也可以实现ddfy加密法。

把字母表的字母从A到Z写下来,在每个字母下面写下数字0到25。在A下面写0,B下面写1,如此类推,直到在Z下面写25(字母表里有26个字母,但我们的数字最多只到25,因为我们从0而不是1开始的)。最终看起来像这样:

有了上面这个从字母到数字的代码,我们就可以用数字来表示字母了。这是一个非常强大的概念,因为数学使用数字。现在我们可以在字母上做运算了。

现在,如果要加密,我们找到希望加密的字母下面的数字,然后把密钥数字加上去。这个和就是加密的字母下面的数字。如,我们使用密钥13加密“Hello. How are you?”。首先,我们找到H下面的数字,是7。接着,我们把密钥加上这个数字,7 + 13 = 20。数字20在字母U下面,这意味着字母H加密成字母U。如果要加密字母E,我们把E下面的4加上13,得到17。17上面的字母是R,因此E加密成R。如此类推。

直到我们遇上字母O时这个方法才会出问题。O下面的数字是14,当把14加上13时,我们得到27。但我们的数字列表最多只到25。如果字母的数字和密钥之和超过26,我们应该减去26,27 – 26得到1。数字1上面的字母是B。于是,当使用密钥13时,字母O加密成字母B。一个接一个地,我们可以把“HELLO. HOW ARE YOU?”里的字母加密成“URYYB. UBJ NER LBH?”。

因此,加密一个字母的步骤是:

1.从1到25选一个密钥。保管好这个密钥!

2.找出明文字母的数字。

3.把密钥加到这个明文字母的数字。

4.如果这个数字大于26,则减去26。

5.找出你计算的数字的字母。这就是密文字母。

6.对明文消息里的每个字母重复步骤2~5。

表1-1演示了如何使用密钥13加密“HELLO. HOW ARE YOU?”里的每个字母。每列演示了把左边的明文字母变成右边的密文字母的步骤。

表1-1 用纸和铅笔加密“Hello. How are you?”的步骤

明文字母明文数字+密钥结果减去26?结果密文字母H7+13= 20= 2020 = UE4+13= 17= 1717 = RL11+13= 24= 2424 = YL11+13= 24= 2424 = YO14+13= 27−26= 11 = BH7+13= 20= 2020 = UO14+13= 27−26= 11 = BW22+13= 35−26= 99 = JA0+13= 13= 1313 = NR17+13= 30−26= 44 = EE4+13= 17= 1717 = RY24+13= 37−26= 1111 = LO14+13= 27−26= 11 = BU20+13= 33−26= 77 = H

如果要解密,你需要理解负数是什么。如果你不知道如何加和减负数,可以参考教程http://invpy.com/neg。

如果要解密,减去这个密钥,而不是加上它。对于密文字母B,这个数字是1。1减去13得到−12。就像加密的“减去26”规则,当解密并且结果小于0时,我们有一条“加上26”的规则。−12 + 26是14,因此,如表1-2所示,密文字母B解密回字母O。

表1-2 用纸和铅笔解密密文的步骤

密文字母密文数字−密钥结果加上26?结果明文字母U20−13= 7= 77 = HR17−13= 4= 44 = EY24−13= 11= 1111 = LY24−13= 11= 1111 = LB1−13= −12+26= 1414 = OU20−13= 7= 77 = HB1−13= −12+26= 1414 = OJ9−13= −4+26= 2222 = WN13−13= 0= 00 = AE4−13= −9+26= 1717 = RR17−13= 4= 44 = EL11−13= −2+26= 2424 = YB1−13= −12+26= 1414 = OH7−13= −6+26= 2020 = U

如你所见,使用ddfy加密法加密是并不真的需要加密轮盘。如果你记住数字和字母,你甚至不必写下字母表以及它们下面的数字。你只需心算就可以写出秘密消息了。

10 B组练习

你可以在http://invpy.com/hackingpractice1B找到练习。

11 双重强度加密

你可能在想,使用两个不同密钥加密同一条消息两次会加倍加密的强度。但这对于ddfy加密法(以及大多数其他加密法)来说不是那么一回事。让我们双重加密一条消息看个究竟。

如果我们用密钥3加密“KITTEN”这个词,得到的密文将是“NLWWHQ”。如果我们用密钥4加密“NLWWHQ”这个词,得到的密文将是“RPAALU”。这和用密钥7加密“KITTEN”这个词完全一样。“双重”加密和普通加密是一样的,没有任何强化。

其中的原因是,当我们用密钥3加密时,我们把3加到明文字母的数字。接着,当我们用密钥4加密时,我们把4加到明文字母的数字。但加上3再加上4和直接加上7完全一样。用密钥3和4加密两次和用密钥7加密一次是一样的。

对于大多数加密法而言,多次加密不会增加密文的强度。事实上,如果你用两个加起来等于26的密钥来加密某些明文,你最终得到的密文和原来的明文是一样的!

12 通过计算机编程进行加密

几个世纪以来,ddfy加密法或者类似的加密法曾被用于加密信息。图1-13是Albert Myer设计的加密圆盘,这个加密圆盘曾在1863年的美国南北战争中使用。

图1-13 在美国国家密码博物馆展览的美国南北战争同盟使用的加密圆盘

如果你有一段很长的消息希望加密(如加密一整本书),手工加密需要耗费数日或数周的时间。这正是编程派上用场的地方。计算机可以在一秒之内完成大量文字工作。但是,我们需要学习如何指示(也就是编程)计算机执行我们所做的步骤。

我们要会说一门计算机能懂的语言。幸运的是,学习编程语言不像学习日语或西班牙语等外语那么难。你甚至不需要懂太多数学,除了加、减和乘。你只需下载一个叫Python的免费软件,这个软件我们将在下一章里讲解。

本文摘自刚刚上架的《Python密码学编程》

《Python密码学编程》适合不懂加密、破译或密码学的初学者。本书的加密法(除了最后一章的RSA加密法)都有数百年历史了,现代计算机的计算能力可以破译使用它们加密的信息,现代组织或个人已经不再使用这些加密法了。有鉴于此,你不会因为本书里的内容而惹麻烦。

本书适合从来没有编过程序的初学者。本书使用Python编程语言讲解基本编程概念。Python非常适合初学者学习编程:它是一种简单可读却又强大的编程语言,为专业软件开发者所用。Python软件可以从http://python.org免费下载,可以在Linux,Windows,OS X和树莓派上运行。

“黑客”有两种定义。一种“黑客”是指通过学习来理解一个系统,并跳出系统原有的规则限制,有创造性地修改它,使之以新的方式来工作的人。另一种“黑客”也用来指入侵计算机系统,触犯个人隐私并造成伤害的罪犯。本书提到的“黑客”是第一种。黑客很酷,罪犯则只是通过破坏来显摆智商的人。就我个人而言,我的本职是一名软件开发者,和写病毒或网络诈骗相比,这份工作钱多活少。

还有一点要注意的,不要把本书里的任何加密程序用于你的实际文件。它们可以带来乐趣,但并不提供真正的安全。一般来说,你不应该信任你自己创造的加密法。正如传奇密码学家Bruce Schneier说的:“任何人,从最无能的外行到最好的密码学家,都能创建出他自己无法破译的算法。这并非难处。难处在于创建出别人无法破译的算法,即使经过数年分析,证明那点的唯一途径是通过各地最好的密码学家对这个算法进行长达数年的分析。”

【亚马逊入口】【当当入口】【京东入口】

目录:

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。