破解密码那些事儿(Hacking Secret Ciphers with Python)
作者: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咨询。
破解密码那些事儿(Hacking Secret Ciphers with Python)的更多相关文章
- Hacking Secret Ciphers with Python翻译序言
马上就要下班,一直想做点什么,学点什么,但是似乎从未着手. 是的,我想学习Hacking,或许很多人都想学,但是诸多的大牛说,这个得有基础,万丈高楼平地起,我做过那么一点点的密码分析,加上某些地方有小 ...
- 为什么现在更多需要用的是 GPU 而不是 CPU,比如挖矿甚至破解密码?
作者:Cascade链接:https://www.zhihu.com/question/21231074/answer/20701124来源:知乎著作权归作者所有,转载请联系作者获得授权. 想要理解G ...
- python 暴力破解密码脚本
python 暴力破解密码脚本 以下,仅为个人测试代码,环境也是测试环境,暴力破解原理都是一样的, 假设要暴力破解登陆网站www.a.com 用户 testUser的密码, 首先,该网站登陆的验证要支 ...
- Linux_破解密码-营救模式
实验用机:CentOS 5.7 破解密码 设置开机启动界面 系统运行级别 营救模式 一.破解密码 root用户可以更改任何用户的密码,普通用户只能修改自己的密码. 步骤: 1.重新启动系统 2.开机倒 ...
- day43 mysql 基本管理,[破解密码以及用户权限设置]以及慢日志查询配置
配置文件:详细步骤, 1,找到mysql的安装包,然后打开后会看到一个my.ini命名的程序,把它拖拽到notepad++里面来打开,(应该是其他文本形式也可以打开,可以试一下),直接拖拽即可打开该文 ...
- CentOS Linux release 7.3破解密码详解
CentOS Linux release 7.3破解密码详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 公司最近接了一个项目,拿到客户现有的源代码,但是服务器用户密码并不知情, ...
- Excel工作表保护的密码破解与清除...假装自己破解密码系列?
有一次我女朋友让我帮忙解一个excel表格的保护密码,然后~用了宏 网上下载来的Excel经常会有工作表保护,也就是无法修改,妄图做任何修改的时候你就会看见这句话: 您试图更改的单元格或图表位于受保护 ...
- Centos7.x破解密码
Centos7.x破解密码 centos7 破解密码 重置Centos 7 Root密码的方式和Centos 6完全不同.让我来展示一下到底如何操作. 1 .在启动grub菜单,选择编辑选项启动 14 ...
- Ubuntu 破解密码及用户管理
Ubuntu 破解密码及用户管理 ubuntu 16.04 破解密码 useradd 实现以下要求 1.ubuntu16.04破解密码 2.创建下面的用户.组和组成员关系 名字为xipudata 的组 ...
随机推荐
- div+css实现未知宽高元素垂直水平居中
div+css实现未知宽高元素垂直水平居中.很多同学在面试的时候都会遇到这样的问题:怎么用div+css的方法实现一个未知宽高的弹出框(或者图片)垂直水平居中??如果用JS的话就好办了,但是JS的使用 ...
- Linux procfs详解
1.0 proc文件系统总览在类Unix系统中体现了一种良好的抽象哲学,就是几乎所有的数据实体都被抽象成一个统一的接口--文件来看待,这样我们就可以用一些简单的基本工具完成大量复杂的操作.在Linux ...
- laravel1
生成模型的时候 同时生成migration文件php artisan make:model User --migration
- ios音频视频资料--备用
视频播放 MediaPlayer.framework MPMoviePlayerViewController VS MPMoviePlayerController MPMoviePlayerViewC ...
- SVN服务器使用(一)
源代码版本控制软件很多,像VSS,SVN还有其他的软件,各有优缺点.Subversion是优秀的版本控制工具,下面主要介绍这个软件的使用. Subversion下载地址: http://subvers ...
- RandomAccessFile类的使用(随机读取java中的文件)
package coreJava; import java.io.File; import java.io.IOException; import java.io.RandomAccessFile; ...
- codeforces 387C George and Number
这道题目的意思是对于每个要删除的数字,向前或向后找到一块连续的数字,而它是其中最小的: 很容易看出对于所有要先删除的数字要从大到小删除: 然后对于每个要删除的字母,要找到比他小的,但是在原数列中又靠它 ...
- POJ1177+线段树+扫描线
思路: 以y的值进行离散化 根据x的值 对每一条y轴边进行处理,如果是"左边"则插入,是"右边"则删除. /* 扫描线+线段树+离散化 求多个矩形的周长 */ ...
- android Failure [INSTALL_FAILED_OLDER_SDK] 安装apk失败
安装文件与运行环境的skd不匹配 打开源码目录下的AndroidManifest.xml文件,然后注释掉或者删除掉这行: <uses-sdk android:minSdkVersion=&quo ...
- 李洪强iOS开发之-环信05_EaseUI 使用指南
李洪强iOS开发之-环信05_EaseUI 使用指南 EaseUI 使用指南 简介 EaseUI 封装了 IM 功能常用的控件(如聊天会话.会话列表.联系人列表).旨在帮助开发者快速集成环信 SDK. ...