前 言
有很多书教初学者如何使用加密法写秘密消息,有一些书教初学者如何破译加密法。据我所知,还没有书教初学者如何编写程序来破译加密法。这本书填补了这个空缺。
本书适合不懂加密、破译或密码学的初学者。本书的加密法(除了最后一章的RSA加密法)都有数百年历史了,现代计算机的计算能力可以破译使用它们加密的信息,现代组织或个人已经不再使用这些加密法了。有鉴于此,你不会因为本书里的内容而惹麻烦。
本书适合从来没有编过程序的初学者。本书使用Python编程语言讲解基本编程概念。Python非常适合初学者学习编程:它是一种简单可读却又强大的编程语言,为专业软件开发者所用。Python软件可以从http://python.org 免费下载,可以在Linux,Windows,OS X和树莓派上运行。
“黑客”有两种定义。一种“黑客”是指通过学习来理解一个系统,并跳出系统原有的规则限制,有创造性地修改它,使之以新的方式来工作的人。另一种“黑客”也用来指入侵计算机系统,触犯个人隐私并造成伤害的罪犯。本书提到的“黑客”是第一种。黑客很酷,罪犯则只是通过破坏来显摆智商的人。就我个人而言,我的本职是一名软件开发者,和写病毒或网络诈骗相比,这份工作钱多活少。
还有一点要注意的,不要把本书里的任何加密程序用于你的实际文件。它们可以带来乐趣,但并不提供真正的安全。一般来说,你不应该信任你自己创造的加密法。正如传奇密码学家Bruce Schneier说的:“任何人,从最无能的外行到最好的密码学家,都能创建出他自己无法破译的算法。这并非难处。难处在于创建出别人无法破译的算法,即使经过数年分析,证明那点的唯一途径是通过各地最好的密码学家对这个算法进行长达数年的分析。”
如果你对这些程序如何工作有问题,可以随时给我发电子邮件:al@inventwithpython.com。
目 录
[第1章 制作纸质加密工具
1.1 密码学是什么](https://yq.aliyun.com/articles/91972/)
1.2 代码与加密法
1.3 制作纸质加密轮盘
1.4 虚拟加密轮盘
1.5 如何使用加密轮盘加密
1.6 如何使用加密轮盘解密
1.7 另一个加密法工具:St. Cyr滑条
1.8 A组练习
1.9 不用纸质工具做加密
1.10 B组练习
1.11 双重强度加密
1.12 通过计算机编程进行加密
[第2章 Pygame基础知识
2.1 下载和安装Python](https://yq.aliyun.com/articles/92041/)
2.1.1 Windows安装步骤
2.1.2 OS X安装步骤
2.1.3 Ubuntu和Linux安装步骤
2.2 下载pyperclip.py
2.3 启动IDLE
2.4 特色程序
2.5 行号和空格
2.6 本书的文本换行
2.7 在线跟踪程序
2.8 使用在线比较工具检查输入的代码
2.9 复制粘贴文本
2.10 更多信息链接
2.11 编程和密码学
第3章 交互式Shell
第4章 字符串和写程序
第5章 反转加密法
第6章 凯撒加密法
第7章 暴力破译凯撒加密法
第8章 使用换位加密法加密
第9章 使用换位加密法解密
第10章 写一个程序测试我们的程序
第11章 加密和解密文件
第12章 通过编程检测英文
第13章 破译换位加密法
第14章 取模运算与乘数加密法和仿射加密法
第15章 仿射加密法
第16章 破译仿射加密法
第17章 简单替代加密法
第18章 破译简单替代加密法
第19章 维吉尼亚加密法
第20章 频率分析
第21章 破译维吉尼亚加密法
第22章 一次一密加密法
第23章 寻找质数
第24章 公钥密码学和RSA加密法