本书是学习用Python编程实现加密算法的初学者指南 本书附带示例源代码,帮助读者学以致用 本书配有课后习题及答案,可帮助读者加深知识理解 通过阅读本书,您将学习如何通过 Python 编程制作和破解密码,以此创建和发送密文!学习 Python 编程的基础 知识之后,您将从使用反向和凯撒密码的简单程序始,了解为公密钥加密的方法,该加密方法用于保护在线事务的 正常运作,包括数字签名和电子邮件。另外,您还将学习如何使用经典密码(如置换密码和维吉尼亚密码)对文本行加密。 每个程序都包含完整的代码和逐行说明。本书结尾,您将学习如何使用 Python 行编码。 您还将学习以下内容: 将循环、变量和流控制语句组合到实际的工作程序中; 使用字典文件检测解密的消息是有效的英文还是乱码; 创建并测试程序以确保代码正确加密和解密; 对仿射密码行编码(破解)的示例(使用模块化算术对消息行加密); 使用暴力算法和频率分析等技术破解密码。
售 价:¥
纸质售价:¥66.20购买纸书
温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印
为你推荐
内容提要
作者简介
审稿人简介
致谢
前言
资源与支持
第1章 制作纸质密码学工具
1.1 什么是密码学
1.2 编码与密码
1.3 凯撒密码
1.4 为什么加密两次不起作用
1.5 小结
1.6 习题
第2章 在交互式运行环境中编程
2.1 简单的数学表达式
2.2 整型和浮点数的值
2.3 表达式
2.4 运算顺序
2.5 计算表达式的值
2.6 用变量存储数值
2.7 重写变量
2.8 变量名
2.9 小结
2.10 习题
第3章 字符串及编写程序
3.1 用字符串的值处理文本
3.2 用print()函数打印值
3.3 打印转义字符
3.4 引号和双引号
3.5 在集成开发环境的文件编辑器中编写程序
3.6 “Hello, World!”程序的源代码
3.7 使用在线比较工具检查源代码
3.8 通过集成开发环境保存程序
3.9 “Hello, World! ”程序如何工作
3.10 小结
3.11 习题
第4章 反向密码
4.1 反向密码程序的源代码
4.2 反向密码程序的执行结果样例
4.3 设置注释及变量
4.4 确定字符串的长度
4.5 while循环
4.6 Boolean数据类型
4.7 比较操作符
4.8 代码块
4.9 while循环语句
4.10 “增长”字符串
4.11 用input()提示改进程序
4.12 小结
4.13 习题
第5章 凯撒密码
5.1 凯撒密码程序的源代码
5.2 凯撒密码程序样例运行
5.3 导入模块并创建变量
5.4 常量和变量
5.5 for循环语句
5.6 if语句
5.7 in和not in运算符
5.8 find()字符串方法
5.9 符号加密和解密
5.10 显示和复制translated字符串
5.11 加密其他字符
5.12 小结
5.13 习题
第6章 用暴力算法破解凯撒密码
6.1 破解凯撒密码的源代码
6.2 运行凯撒密码破解程序的样例
6.3 设置变量
6.4 在循环中使用range()方法
6.5 解密消息
6.6 使用字符串标准化输出密钥及解密后的信息
6.7 小结
6.8 习题
第7章 通过置换密码实现加密
7.1 置换密码如何工作
7.2 置换密码加密程序的源代码
7.3 置换密码加密程序的示例运行
7.4 用def语句创建自定义函数
7.5 以参数形式传递密钥和消息
7.6 数据类型:列表
7.7 置换加密算法
7.8 增量赋值运算符
7.9 随消息移动currentIndex
7.10 join()字符串方法
7.11 返回值和返回语句
7.12 __name__变量
7.13 小结
7.14 习题
第8章 解密置换密码
8.1 如何在纸上解密置换密码
8.2 置换密码解密程序的源代码
8.3 运行置换密码解密程序的样例
8.4 导入模块并创建主函数
8.5 使用密钥解密消息
8.6 调用main()函数
8.7 小结
8.8 习题
第9章 编写测试程序
9.1 置换密码测试程序的源代码
9.2 运行置换密码测试程序的示例
9.3 导入模块
9.4 生成伪随机数
9.5 创建随机字符串
9.6 测试消息
9.7 检查密码程序是否正常工作并结束程序
9.8 调用main()函数
9.9 检验测试程序
9.10 小结
9.11 习题
第10章 文件的加密与解密
10.1 纯文本文件
10.2 使用置换密码加密文件的源代码
10.3 运行置换密码加密文件程序的样例
10.4 文件操作
10.5 创建main()函数
10.6 检查文件是否存在
10.7 使用字符串方法令用户的输入更灵活
10.8 读取作为输入的文件
10.9 计算加/解密所需的时间
10.10 将输出写入文件
10.11 调用main()函数
10.12 小结
10.13 习题
第11章 编程检测英语文本
11.1 计算机如何理解英语
11.2 英语检测模块的源代码
11.3 英语检测模块的运行示例
11.4 指令和设置常量
11.5 字典数据类型
11.6 运行字典文件
11.7 对消息中出现的英文单词进行计数
11.8 删除非字母字符
11.9 检测英语单词
11.10 小结
11.11 习题
第12章 破解置换密码
12.1 破解置换密码程序的源代码
12.2 运行破解置换密码程序的样例
12.3 导入模块
12.4 使用三引号的多行字符串
12.5 展示破解密文的结果
12.6 得到破解后的消息
12.7 调用main()函数
12.8 小结
12.9 习题
第13章 仿射密码的模运算模块
13.1 模运算
13.2 模运算符
13.3 寻找因子并计算最大公约数
13.4 多重赋值
13.5 欧几里得算法求最大公约数
13.6 理解乘法和仿射密码的工作原理
13.7 Cryptomath模块的源代码
13.8 小结
13.9 习题
第14章 编写仿射密码
14.1 仿射密码程序的源代码
14.2 运行仿射密码程序的样例
14.3 引入模块、设置常量并创建main()函数
14.4 计算并验证密钥
14.5 编写加密函数
14.6 编写解密函数
14.7 生成随机密钥对
14.8 调用main()函数
14.9 小结
14.10 习题
第15章 破解仿射密码
15.1 仿射密码破解程序的源代码
15.2 仿射密码破解程序的运行示例
15.3 创建模块、常量和main()函数
15.4 仿射密码破解函数
15.5 调用main()函数
15.6 小结
15.7 习题
第16章 编写简单代换密码
16.1 简单代换密码的工作原理
16.2 简单代换密码程序的源代码
16.3 运行简单代换密码程序的样例
16.4 引入模块、设置常量、创建main()函数
16.5 sort()列表方法
16.6 包裹函数
16.7 translateMessage()函数
16.8 生成随机密钥
16.9 调用main()函数
16.10 小结
16.11 习题
第17章 破解简单代换密码
17.1 使用单词模式进行解密
17.2 破解程序总览
17.3 单词模式模块
17.4 简单代换破解程序的源代码
17.5 简单代换破解程序的运行示例
17.6 创建模块和常量
17.7 用正则表达式查找字符
17.8 创建main()函数
17.9 向用户显示破解结果
17.10 创建密文映射
17.11 hackSimpleSub()函数
17.12 调用main()函数
17.13 小结
17.14 习题
第18章 编写维吉尼亚密码
18.1 在维吉尼亚密码中使用多字母密钥
18.2 维吉尼亚密码实现程序的源代码
18.3 运行维吉尼亚密码实现程序的样例
18.4 引入模块、设置常量和创建main()函数
18.5 使用List-Append-Join模式生成字符串
18.6 消息的加密与解密
18.7 调用main()函数
18.8 小结
18.9 习题
第19章 频率分析
19.1 分析文本中的字母频率
19.2 匹配字母频率
19.3 计算字母频率的源码
19.4 以“ETAOIN”顺序保存字母
19.5 对消息中的字母进行计数
19.6 获取元组的第一个成员
19.7 将消息中的字母按频率大小排序
19.8 计算消息的频率匹配分数
19.9 小结
19.10 习题
第20章 破解维吉尼亚密码
20.1 运用字典式攻击暴力破解维吉尼亚密码
20.2 维吉尼亚密码字典式破解程序的源代码
20.3 维吉尼亚密码字典式破解程序的运行样例
20.4 关于维吉尼亚密码破解程序
20.5 运用Kasiski检测确定密钥长度
20.6 维吉尼亚密码破解程序的源代码
20.7 维吉尼亚密码破解程序的运行样例
20.8 引入模块、设置常量和创建main()函数
20.9 寻找重复序列
20.10 求得间隔数的因子
20.11 找到最可能的密钥长度
20.12 找到由相同子密钥加密的字母
20.13 尝试用可能的密钥长度进行解密
20.14 返回破解后的消息
20.15 调用main()函数
20.16 改变破解程序中的常量
20.17 小结
20.18 习题
第21章 一次一密
21.1 不可破解的一次一密
21.2 为什么两次一密是维吉尼亚密码
21.3 小结
21.4 习题
第22章 素数的查找与生成
22.1 什么是素数
22.2 素数模块的源代码
22.3 素数模块的调用样例
22.4 试除法的原理
22.5 实现试除法检测
22.6 埃拉托斯特尼筛法
22.7 使用埃拉托斯特尼筛法生成素数
22.8 Rabin-Miller素性检测算法
22.9 寻找大素数
22.10 生成大素数
22.11 小结
22.12 习题
第23章 为公钥密码生成密钥
23.1 公钥密码体制
23.2 认证的问题
23.3 生成公钥和私钥的步骤
23.4 公钥生成程序的源代码
23.5 公钥生成程序的示例运行
23.6 创建main()函数
23.7 通过generateKey()函数生成密钥
23.8 通过makeKeyFiles()函数创建密钥文件
23.9 调用main()函数
23.10 混合密码体制
23.11 小结
23.12 习题
第24章 编写公钥密码算法
24.1 公钥密码算法的实现原理
24.2 实现公钥密码算法的源代码
24.3 公钥密码算法实现程序的运行样例
24.4 程序的设置
24.5 程序如何判断加解密
24.6 通过getBlockFromText()函数将字符串转换为分组
24.7 使用getTextFromBlocks()进行解密
24.8 编写encryptMessage()函数
24.9 编写decryptMessage()函数
24.10 从密钥文件中读取公钥和私钥
24.11 将加密的内容写入文件
24.12 解密文件中的信息
24.13 调用main()函数
24.14 小结
附录 调试Python代码
调试器如何工作
调试反向密码程序
设置断点
小结
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜