作者:Al Sweigart
我们在电视和电影里头经常能够看到黑客们兴奋的快速敲击键盘,接着毫无意义的数字就在屏幕上飞奔(比如黑客帝国)。然后让大家产生了一种奇妙的错觉,做黑客是一件高大上的事情,而且需要超人的智慧。
其实这没有什么神奇的!这些都是基于计算机上的把戏,而且每一台计算机后面都有固定的逻辑和规则,学习和理解他们并非完天方夜谭。即便你不能理解为什么有时候计算机会变得如此的让人抓狂也或者不可思议,但你知道这总是总是总是有原因的。
而且吧,想学习了解计算机背后的逻辑根本不是什么困难的事情。很重要的是这本书(我翻译的这个东西)就是假设你根本不懂密码学(我略懂),也根本不懂编程(我略懂),然后一步一步,再一步一步的学习写程序,然后破解那些神秘的密码。跟着我快乐的玩耍吧。
本书所得的所有收益全部捐献给Electronic Frontier Foundation, the Creative Commons, 和the Tor Project。(至于是哪三个组织,先hold着以后告诉你)
向Aaron Swartz(1986–2013)致敬
作为我们的一员,Aaron坚信我们的民主是建立在公民知情的基础下,公民知情意味着我们知道我们的权利和义务。我们坚持我们必须将正义和知识传递给普罗大众,让他们并不局限于那些含着金钥匙出生的土豪以及掌握公权力的政府大员,只有这样我们才能更体面的活着。
看着一起努力的伙伴,我似乎又看到了Aaron的身影,但是我们失去了一位天使般纯洁的朋友,我的心满是伤痕。
---------C.M.
Aaron was part of an army of citizens that believes democracy only works when the citizenry are informed, when we know about our rights—and our obligations. An army that believes we must make justice and knowledge available to all—not just the well born or those that have grabbed the reins of power—so that we may govern ourselves more wisely.
When I see our army, I see Aaron Swartz and my heart is broken.We have truly lost one of our better angels.
---------C.M.
关于本书:
其实现在已经有很多关于教会初学者如何通过秘钥加密消息的书籍,同时有更多的书籍关于如何破解这些已经加密了的消息。至今为止,我还没看到有哪本书籍教初学者写程序去破解这些加了密的密文的,这本书填补相关领域的空白(wow)。
这本书的读者是那些真的对加解密一点都不了解的菜鸟,更不要说破解或者其他什么了知识背景了。这本书里头采用的加密算法(除了最后的RSA的那个章节)基本上都是一些很经典的老算法,而现在的计算机有足够的计算能力能去破解这些密文(以后加了密的消息统称密文,什么?你问我什么是消息,消息就是你要加密的对象。什么?你问我什么是对象,你也够宅了!)基本上现在的机构和自用的程序都不会再使用那些算法了,所以你不用担心本书的内容会给你带来任何法律方面的麻烦。(这么旧的东西学来干嘛,好吧,你到底要不要看下去)
这本书假定你是一个完全没有写过代码的人(譬如文科生,好吧,不能一棒子打死,大部分文科生),本书会教你使用神作Python(因为是Python的缘故,我才最后下决心翻译本书,停!神马你说大蛇有什么好的,你这就是真没见过大蛇拉屎了!)Python是最适合初学者学习编程的编程语言:因为它简单,读起来很容易懂(当然很多大牛的代码也不是这么好懂的),具有超强的能力(当然说的是驾驭计算机的能力,不是超能力),而且很多大牛也用他去做大事情,这种老少咸宜的东西甚是好玩。Python是可以免费下载回来的,(http://python.org)并且可用在Linux,Windows,Mac OSX以及Raspberry Pi上使用。
对于黑客,其实有两种定义。第一种黑客是对某个系统非常的了解(包括某些加密系统或者某种软件),他们了解得如此得深入,所以他们可以绕过原系统的限制,去做他们想做的事情,当然是用他们的方法。另一种含义就是那种入侵别人系统,破坏人家隐私,制造破坏的人,当然这是违法的。本书的黑客显然是第一种定义了。黑客很酷,他们通过制造这些违法的事情去证明自己足够的聪明。就个人而已,我的日常工作只是个程序猿,多多少少干些活吧,省得我太闲了去写些病毒或做些网络蠕虫什么的。
我很认真的说,不要用本书提到的任何加密程序来加密你的日常文件。因为我们是学着玩的,那些算法的安全性实在不值一提。在实际生活中,你不要太相信你写的加密程序了。传说中的密码学家Bruce Schneier说:任何人,从最业余的工程师到最精明的密码学家都可以搞出一个自己无法破解的算法。但是只有时间和更精明的密码分析学家(很高深是吧,我也从事过这种高大上的活,其实就是破解密码,美其名曰密码分析)能告诉你,到底这个算法有多好。
本书的发行是基于Creative Commons license(这我也不懂,版权的一种),可以免费拷贝和分发,可以在网站下载(http://inventwithpython.com/hacking),有任何关于程序方面的疑问,请发邮件al@inventwithpython.com咨询。