有很多书教初学者如何使用加密法写秘密消息,有一些书教初学者如何破译加密法。据我所知,还没有书教初学者如何编写程序来破译加密法。这本书填补了这个空缺。
本书适合不懂加密、破译或密码学的初学者。本书的加密法(除了最后一章的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.py2.3 启动IDLE2.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加密法