破解密码那些事儿(chapter 2,走近Python,下)

书接上一回,由于本人折腾跳槽两月未果,期间无心情翻译,各位看官敬请原谅。

本书代码的品味

这本书附上的程序都是完整(不要小看这两个字!!)的代码,和其他书所谓的节选代码是完全不一样的。(如果你从一个菜鸟开始学习,编程,你就会恨死这些节选的代码,没头没尾,我要引用什么库,什么包,程序范型是咋样,书的作者默认你是会的!呀呀呸的,会我还看你的书!)我们不会做那种只给你一个概念,思路,让你自己去完成代码,而是跟着我们完成完整的代码,并告诉你这个代码是怎么工作的。(HOW THEY WORK是精髓!)

说到了代码的事情,总会有些朋友会很主动的自己在IDLE上敲,也会有朋友去我们的官网下,(虽然我建议你们自己敲,但是想下载也不是错),http://invpy.com/hackingsource 。

其实这是一本你应该从头读到尾的书(我要敲打的就是那些中间选着看的兄弟们)。编程的精髓在思维模式上,而且思想的东西是渐进的,不是空中楼阁。而且Python是一门可读性很强的语言,相比第一章的那些代码的片段已经让你建立了这个意识。如果你是跳着看的话,遇到了一些难以想明白的点,你可以翻回前面的章节,也可以发邮件给我[email protected] .

行号和空格

当你敲打代码的时候,不要把每行开头的行号敲进去了。比如:下面的代码:

你不需要把1,2,3这个出现在每行第一个位置的数字,是不要敲进你写的代码的,其实你也可以用空格来代替数字的。

这些出现在每行的第一个位置的数字,仅仅是用来在书里头我要引用的时候才用的。他们并不是程序的一部分,所以除了数字行号以外,你需要很认真的敲代码,包括大小写。在Python里头,HELLO和hell,以及Hello都是不同的东西。

另外要注意的是,有些代码并不是紧跟行号的,举个例子

第二行的i比起第一行的while来说,明显是多了4个空格在前面,第三行的print的p前面又比第二行的if的i多了4个空格。这很重要,必须严格的按照我们的这个例子来敲,不然程序是运行不了的。(总有朋友问为什么,你是十万个为什么么?那是因为Python的语法规定,通过空格来描述程序的结构。什么?看不懂,那就老老实实的跟着敲!)

文本格式

有的时候,我们书里头某行代码会很长,排版的时候就会自动断行到下一行。但是,请注意,在你的程序里头务必敲在一行里,不要回车!

显然第一行代码很长,由于排版的缘故,分成了两行,但是你敲代码的时候必须只能是一行。

调试代码

调试意味着你会一行一行的的执行代码,去看都做了什么。我们专门做了一个专栏http://invpy.com/hackingtraces。上面有我们所有的代码,会有一些提示和有用的知识,帮助大家去理解程序怎么运行的,让大家建立起我们程序运行背后的机制。(经过我点击,发现是未建好的页面)

在线检查代码的异同

毫无疑问,自己一句句的敲代码会让你学到很多的东西,但是有的时候,你的一些小的错误会让你无法运行你的程序,(Python新手请注意了,再次强调,格式很重要!血的经验教训!没错,我再强调,你还是会流血的)

你可以把你敲入的代码复制黏贴到我们的工具上http://invpy.com/hackingdiff,然后会看到你的代码和书本正确的代码的区别,尤其是检查有没有格式错误。你担心不会用?http://invpy.com/hackingvideos 我们有视频教程。就是这么贴心,你知道吧!

CTRL+C&CTRL+V

复制粘贴是一个非常出名的技能,本书的需要加密解密的内容都比较长,木有必要一个个字符的敲进去,用这个技能把它们拷贝到浏览器或者是IDLE去。

我们非常担心你不会这个技能,还是说说为好。首先选中要拷贝的字符串,被选中的字符串会高亮显示(就是变色),mac中可以选择最上栏的Edit,在下拉菜单中选Copy;windows就是直接用快捷键CTRL+C(记住,选中后是同时按下),其实在Mac里头用Command+C也是一样的。完后,这些内容就会到你的内存或者剪贴板(不要问,什么是剪贴板,不认识的话直接忽略)。

请记住,每次拷贝完,内存都会自动把上一次拷贝的东西清空。

如果你还是不清楚,请参看http://invpy.com/copypaste

扩展知识

对于新手来说,关于编程和密码学的内容很多,但是也没有必要一下子都学完。然而,我们书上的内容也是远远不够的,倘若我把这些内容加进来,本书的页码会剧增,无疑是把你们推向火坑。所以每次,我们都会在扩展知识里头加上一些扩展的链接,供有需要的筒子学习。对于本书的内容来说,哪些知识完全是课外知识,所以不看扩展的内容不会影响对本书的理解。所有的内容都是下面这个网址开头的http://invpy.com(以防你被钓鱼了)。纵然本书可能让你跳进火坑,也不要将本书扔进火堆。Orz

编程和密码学

编程和密码学本身没有什么交集,然而在一起学习到时很有必要,因为计算机可以帮我们完成这些体力活。比如下面是莎士比亚著作《罗密欧与朱丽叶》的选段,简单的替换加密的密文(经过我再三思考,我还是不拷贝过来了,你看到会发疯的)

破解密码那些事儿(chapter 2,走近Python,下)_第1张图片

(看完截图,你就知道我是在帮你们,如果你要自虐,请邮件联系我)([email protected]

其实我想告诉你们的是,上面这些个文字,你要用笔算来翻译,你会废掉几天来抄,然后免不了犯错,最后还要废掉几天来解密,总体而言,你就是自虐狂。

用了计算机,这就是两秒钟的事情。

这就是计算机的力量,如果你不懂编程,本书会教会你,如果你懂,你可以尝试破译这段密文。来跟我走近编程,走近黑客的世界。

开始吧!

你可能感兴趣的:(破解密码那些事儿(chapter 2,走近Python,下))