作者:Al Sweigart

 

我们在电视和电影里头经常能够看到黑客们兴奋的快速敲击键盘,接着毫无意义的数字就在屏幕上飞奔(比如黑客帝国)。然后让大家产生了一种奇妙的错觉,做黑客是一件高大上的事情,而且需要超人的智慧。

其实这没有什么神奇的!这些都是基于计算机上的把戏,而且每一台计算机后面都有固定的逻辑和规则,学习和理解他们并非完天方夜谭。即便你不能理解为什么有时候计算机会变得如此的让人抓狂也或者不可思议,但你知道这总是总是总是有原因的。

而且吧,想学习了解计算机背后的逻辑根本不是什么困难的事情。很重要的是这本书(我翻译的这个东西)就是假设你根本不懂密码学(我略懂),也根本不懂编程(我略懂),然后一步一步,再一步一步的学习写程序,然后破解那些神秘的密码。跟着我快乐的玩耍吧。

本书所得的所有收益全部捐献给Electronic Frontier Foundation, the Creative Commons, 和the Tor Project。(至于是哪三个组织,先hold着以后告诉你)

Aaron Swartz(19862013)致敬

作为我们的一员,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咨询。

破解密码那些事儿(Hacking Secret Ciphers with Python)的更多相关文章

  1. Hacking Secret Ciphers with Python翻译序言

    马上就要下班,一直想做点什么,学点什么,但是似乎从未着手. 是的,我想学习Hacking,或许很多人都想学,但是诸多的大牛说,这个得有基础,万丈高楼平地起,我做过那么一点点的密码分析,加上某些地方有小 ...

  2. 为什么现在更多需要用的是 GPU 而不是 CPU,比如挖矿甚至破解密码?

    作者:Cascade链接:https://www.zhihu.com/question/21231074/answer/20701124来源:知乎著作权归作者所有,转载请联系作者获得授权. 想要理解G ...

  3. python 暴力破解密码脚本

    python 暴力破解密码脚本 以下,仅为个人测试代码,环境也是测试环境,暴力破解原理都是一样的, 假设要暴力破解登陆网站www.a.com 用户 testUser的密码, 首先,该网站登陆的验证要支 ...

  4. Linux_破解密码-营救模式

    实验用机:CentOS 5.7 破解密码 设置开机启动界面 系统运行级别 营救模式 一.破解密码 root用户可以更改任何用户的密码,普通用户只能修改自己的密码. 步骤: 1.重新启动系统 2.开机倒 ...

  5. day43 mysql 基本管理,[破解密码以及用户权限设置]以及慢日志查询配置

    配置文件:详细步骤, 1,找到mysql的安装包,然后打开后会看到一个my.ini命名的程序,把它拖拽到notepad++里面来打开,(应该是其他文本形式也可以打开,可以试一下),直接拖拽即可打开该文 ...

  6. CentOS Linux release 7.3破解密码详解

    CentOS Linux release 7.3破解密码详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 公司最近接了一个项目,拿到客户现有的源代码,但是服务器用户密码并不知情, ...

  7. Excel工作表保护的密码破解与清除...假装自己破解密码系列?

    有一次我女朋友让我帮忙解一个excel表格的保护密码,然后~用了宏 网上下载来的Excel经常会有工作表保护,也就是无法修改,妄图做任何修改的时候你就会看见这句话: 您试图更改的单元格或图表位于受保护 ...

  8. Centos7.x破解密码

    Centos7.x破解密码 centos7 破解密码 重置Centos 7 Root密码的方式和Centos 6完全不同.让我来展示一下到底如何操作. 1 .在启动grub菜单,选择编辑选项启动 14 ...

  9. Ubuntu 破解密码及用户管理

    Ubuntu 破解密码及用户管理 ubuntu 16.04 破解密码 useradd 实现以下要求 1.ubuntu16.04破解密码 2.创建下面的用户.组和组成员关系 名字为xipudata 的组 ...

随机推荐

  1. Nginx+Keepalived主备负载均衡

    实验环境及软件版本: CentOS版本:    6.6(2.6.32.-504.el6.x86_64) nginx版本:     nginx-1.6.2 keepalived版本:keepalived ...

  2. shell写的计算器

    #!/bin/bashif [ $# -ne 3 ] then echo "Usage: $0 num1 + num2" fi case $2 in +) echo $1$2$3= ...

  3. ubuntu - sudo in php exec

    最近写防火墙的WEB版,需要在PHP中调用linux系统命令,但是防火墙有关的执行都需要管理员权限才能执行. 在ubuntu下,Apache2的运行账户默认是www-data,默认是不能通过sudo来 ...

  4. BZOJ 3343教主的魔法

    Description 教主最近学会了一种神奇的魔法,能够使人长高.于是他准备演示给XMYZ信息组每个英雄看.于是N个英雄们又一次聚集在了一起,这次他们排成了一列,被编号为1.2.…….N. 每个人的 ...

  5. Automotive Security的一些资料和心得(7):AUTOSAR和Security

    1. 密码模块[1] 密码模块在Services Layer Configurable and common access to 密码子程序 硬件支持密码模块 2. 应用 应用和密码子程序分离 Cry ...

  6. Linux下相关查找文件命令(find locate which whereis type)

    以下内容摘自:http://blog.csdn.net/jessica1201/article/details/8139249 标注的内容为自己的补充: 我们经常需要在系统中查找一个文件,那么在lin ...

  7. 浏览我的php网页时,出现的都是网页的代码

    添加php模块 ,在apache/conf/httpd.conf,如果是windows下的话,添加如下代码,具体路径你根据具体情况设置#BEGIN PHP INSTALLER EDITS - REMO ...

  8. iOS 并发:NSOperation 与调度队列入门(1)

    一直以来,并发都被视为 iOS 开发中的「洪水猛兽」.许多开发者都将其视为危险地带,唯恐避之而不及.更有谣传认为,多线程代码应该尽力避免.笔者同意,如果你对并发的了解不够深入,就容易造成危险.但是,危 ...

  9. Maven引入依赖后自动下载并关联源码(Source)

    好多用 Maven 的时候会遇到这样一个棘手的问题: 就是添加依赖后由于没有下载并关联源码,导致自动提示无法出现正确的方法名,而且不安装反编译器的情况下不能进入方法内部看具体实现 . 其实 eclip ...

  10. CAN

    CAN Introduction Features Network Topology(CANbus網路架構) MESSAGE TRANSFER(CAN通訊的資料格式) 1.DATA FRAME(資料通 ...