• Python密码学编程 9787115529992
  • Python密码学编程 9787115529992
21年品牌 40万+商家 超1.5亿件商品

Python密码学编程 9787115529992

全新正版 _可开发票_极速发货

56.5 6.3折 89 全新

库存37件

山东泰安
认证卖家担保交易快速发货售后保障

作者[美]阿尔·斯维加特(Al Sweigart)

出版社人民邮电出版社

ISBN9787115529992

出版时间2020-04

装帧平装

开本其他

定价89元

货号9750603

上书时间2024-07-01

果然是好书店

三年老店
已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
商品描述
导语摘要
本书是学习用Python编程实现加密算法的初学者指南本书附带示例源代码,帮助读者学以致用本书配有课后习题及答案,可帮助读者加深知识理解通过阅读本书,您将学习如何通过Python编程制作和破解密码,以此创建和发送密文!学习Python编程的基础 知识之后,您将从使用反向和凯撒密码的简单程序开始,了解为公开密钥加密的方法,该加密方法用于保护在线事务的正常运作,包括数字签名和电子邮件。另外,您还将学习如何使用经典密码(如置换密码和维吉尼亚密码)对文本进行加密。 每个程序都包含完整的代码和逐行说明。本书结尾,您将学习如何使用Python进行编码。
您还将学习以下内容:将循环、变量和流控制语句组合到实际的工作程序中;使用字典文件检测解密的消息是有效的英文还是乱码;创建并测试程序以确保代码正确加密和解密;对仿射密码进行编码(破解)的示例(使用模块化算术对消息进行加密);使用暴力算法和频率分析等技术破解密码。

作者简介
阿尔·斯维加特(Al Sweigart)是一位专业的软件开发人员,他专注于儿童和成.人编程项目。他编写了《Python游戏编程快速上手》《Python和Pygame游戏开发指南》《Python密码学编程》《Python编程快速上手——让繁琐工作自动化》等图书,深受读者欢迎。

目录

第 1章 制作纸质密码学工具 1

1.1 什么是密码学 1

1.2 编码与密码 2

1.3 凯撒密码 3

1.3.1 密码轮 3

1.3.2 使用密码轮进行加密 4

1.3.3 使用密码轮进行解密 5

1.3.4 通过计算进行加密和解密 5

1.4 为什么加密两次不起作用 6

1.5 小结 7

1.6 习题 7

第 2章 在交互式运行环境中编程 8

2.1 简单的数学表达式 8

2.2 整型和浮点数的值 9

2.3 表达式 10

2.4 运算顺序 10

2.5 计算表达式的值 10

2.6 用变量存储数值 12

2.7 重写变量 13

2.8 变量名 14

2.9 小结 14

2.10 习题 15

第3章 字符串及编写程序 16

3.1 用字符串的值处理文本 16

3.1.1 “ ”运算符实现字符串拼接 17

3.1.2 “*”运算符实现字符串复制 18

3.1.3 通过索引获得字符串中的字符 18

3.2 用print()函数打印值 21

3.3 打印转义字符 22

3.4 引号和双引号 23

3.5 在集成开发环境的文件编辑器中编写程序 23

3.6 “Hello, World!”程序的源代码 24

3.7 使用在线比较工具检查源代码 25

3.8 通过集成开发环境保存程序 26

3.8.1 保存程序 26

3.8.2 运行程序 26

3.8.3 打开保存的程序 27

3.9 “Hello, World! ”程序如何工作 27

3.9.1 注释 28

3.9.2 打印指示信息 28

3.9.3 接收输入 28

3.9.4 完成程序 29

3.10 小结 29

3.11 习题 30

第4章 反向密码 31

4.1 反向密码程序的源代码 31

4.2 反向密码程序的执行结果样例 32

4.3 设置注释及变量 32

4.4 确定字符串的长度 33

4.5 while循环 33

4.6 Boolean数据类型 34

4.7 比较操作符 34

4.8 代码块 36

4.9 while循环语句 37

4.10 “增长”字符串 38

4.11 用input()提示改进程序 40

4.12 小结 41

4.13 习题 41

第5章 凯撒密码 42

5.1 凯撒密码程序的源代码 42

5.2 凯撒密码程序样例运行 43

5.3 导入模块并创建变量 44

5.4 常量和变量 45

5.5 for循环语句 45

5.5.1 for循环的示例 46

5.5.2 等价于for循环的while循环 46

5.6 if语句 47

5.6.1 if语句的示例 47

5.6.2 else语句 48

5.6.3 elif语句 48

5.7 in和not in运算符 49

5.8 find()字符串方法 50

5.9 符号加密和解密 51

5.9.1 实现“回环” 51

5.9.2 处理符号集以外的符号 52

5.10 显示和复制translated字符串 52

5.11 加密其他字符 53

5.12 小结 53

5.13 习题 54

第6章 用暴力算法破解凯撒密码 56

6.1 破解凯撒密码的源代码 56

6.2 运行凯撒密码破解程序的样例 57

6.3 设置变量 58

6.4 在循环中使用range()方法 58

6.5 解密消息 59

6.6 使用字符串标准化输出密钥及

解密后的信息 60

6.7 小结 61

6.8 习题 62

第7章 通过置换密码实现加密 63

7.1 置换密码如何工作 63

7.1.1 手动加密消息 64

7.1.2 创建加密程序 65

7.2 置换密码加密程序的源代码 66

7.3 置换密码加密程序的示例运行 67

7.4 用def语句创建自定义函数 67

7.4.1 定义用形参接收实参的函数 68

7.4.2 更改仅存在于函数中的形参 68

7.4.3 定义main()函数 69

7.5 以参数形式传递密钥和消息 70

7.6 数据类型:列表 70

7.6.1 对列表中的项重新赋值 71

7.6.2 多级列表 72

7.6.3 对列表使用len()和in运算符 72

7.6.4 用 和*运算符连接和复制列表 73

7.7 置换加密算法 74

7.8 增量赋值运算符 75

7.9 随消息移动currentIndex 75

7.10 join()字符串方法 77

7.11 返回值和返回语句 77

7.11.1 return语句示例 78

7.11.2 返回加密得到的密文 78

7.12 __name__变量 78

7.13 小结 79

7.14 习题 80

第8章 解密置换密码 81

8.1 如何在纸上解密置换密码 81

8.2 置换密码解密程序的源代码 82

8.3 运行置换密码解密程序的样例 84

8.4 导入模块并创建主函数 84

8.5 使用密钥解密消息 84

8.5.1 round()、math.ceil()和math.floor()方法 85

8.5.2 decryptMessage()函数 86

8.5.3 布尔操作符 87

8.5.4 使用and和or操作符往往是一条捷径 89

8.5.5 布尔操作符的运算顺序 90

8.5.6 调整变量column和row的值 90

8.6 调用main()函数 92

8.7 小结 92

8.8 习题 92

第9章 编写测试程序 94

9.1 置换密码测试程序的源代码 94

9.2 运行置换密码测试程序的示例 95

9.3 导入模块 96

9.4 生成伪随机数 96

9.5 创建随机字符串 97

9.5.1 将字符串复制随机次 98

9.5.2 列表变量使用引用 98

9.5.3 传递引用 101

9.5.4 使用copy.deepcopy()复制列表 101

9.5.5 random.shuffle()函数 101

9.5.6 随机打乱字符串 102

9.6 测试消息 102

9.7 检查密码程序是否正常工作并

结束程序 103

9.8 调用main()函数 104

9.9 检验测试程序 104

9.10 小结 104

9.11 习题 105

第 10章 文件的加密与解密 106

10.1 纯文本文件 106

10.2 使用置换密码加密文件的

源代码 107

10.3 运行置换密码加密文件程序的

样例 108

10.4 文件操作 109

10.4.1 打开文件 109

10.4.2 数据写入及文件关闭 109

10.4.3 读取文件 110

10.5 创建main()函数 111

10.6 检查文件是否存在 111

10.6.1 os.path.exists() 方法 111

10.6.2 使用os.path.exists()方法检查

输入的文件是否存在 112

10.7 使用字符串方法令用户的输入

更灵活 112

10.7.1 upper()、lower()和title()字符串

方法 112

10.7.2 startswith()和endswith()方法 113

10.7.3 在程序中使用上述字符串方法 113

10.8 读取作为输入的文件 114

10.9 计算加/解密所需的时间 114

10.9.1 time模块和time.time()方法 114

10.9.2 在程序中使用time.time()方法 115

10.10 将输出写入文件 115

10.11 调用main()函数 116

10.12 小结 116

10.13 习题 117

第 11章 编程检测英语文本 118

11.1 计算机如何理解英语 118

11.2 英语检测模块的源代码 120

11.3 英语检测模块的运行示例 121

11.4 指令和设置常量 121

11.5 字典数据类型 122

11.5.1 字典和列表之间的区别 123

11.5.2 在字典中添加或更改项 123

11.5.3 对字典使用len()函数 124

11.5.4 对字典使用in运算符 124

11.5.5 用字典检索项比用列表更快 125

11.5.6 在字典上使用循环 125

11.6 运行字典文件 125

11.6.1 split()方法 126

11.6.2 将字典文件分割成单个单词 126

11.6.3 返回字典数据 127

11.7 对消息中出现的英文单词进行

计数 127

11.7.1 除数为零错误 128

11.7.2 对匹配上的英语单词进行计数 128

11.7.3 float()、int()和str()函数及整数

除法 129

11.7.4 获得message中英语单词的

比例 129

11.8 删除非字母字符 130

11.8.1 append()列表方法 130

11.8.2 创建字母组成的字符串 131

11.9 检测英语单词 131

11.9.1 使用默认参数 132

11.9.2 计算百分比 132

11.10 小结 134

11.11 习题 134

第 12章 破解置换密码 136

12.1 破解置换密码程序的源代码 136

12.2 运行破解置换密码程序的样例 137

12.3 导入模块 138

12.4 使用三引号的多行字符串 138

12.5 展示破解密文的结果 139

12.6 得到破解后的消息 140

12.6.1 strip()字符串方法 141

12.6.2 应用strip()字符串方法 142

12.6.3 破解失败 142

12.7 调用main()函数 143

12.8 小结 143

12.9 习题 143

第 13章 仿射密码的模运算模块 144

13.1 模运算 144

13.2 模运算符 145

13.3 寻找因子并计算公约数 146

13.4 多重赋值 147

13.5 欧几里得算法求公约数 148

13.6 理解乘法和仿射密码的工作

原理 149

13.6.1 为乘法密码选择有效的密钥 150

13.6.2 仿射密码加密 150

13.6.3 仿射密码解密 151

13.6.4 计算模逆 152

13.6.5 整数除法运算符 152

13.7 Cryptomath模块的源代码 153

13.8 小结 154

13.9 习题 154

第 14章 编写仿射密码 155

14.1 仿射密码程序的源代码 155

14.2 运行仿射密码程序的样例 157

14.3 引入模块、设置常量并创建

main()函数 157

14.4 计算并验证密钥 158

14.4.1 元组数据类型 159

14.4.2 检验弱密钥 159

14.4.3 仿射密码共有多少种密钥组合 160

14.5 编写加密函数 162

14.6 编写解密函数 163

14.7 生成随机密钥对 164

14.8 调用main()函数 164

14.9 小结 165

14.10 习题 165

第 15章 破解仿射密码 166

15.1 仿射密码破解程序的源代码 166

15.2 仿射密码破解程序的运行示例 167

15.3 创建模块、常量和main()函数 168

15.4 仿射密码破解函数 169

15.4.1 乘方运算符 169

15.4.2 计算可能密钥的总数 169

15.4.3 continue语句 170

15.4.4 使用continue跳过代码 171

15.5 调用main()函数 172

15.6 小结 172

15.7 习题 173

第 16章 编写简单代换密码 174

16.1 简单代换密码的工作原理 174

16.2 简单代换密码程序的源代码 175

16.3 运行简单代换密码程序的样例 177

16.4 引入模块、设置常量、创建

main()函数 177

16.5 sort()列表方法 179

16.6 包裹函数 179

16.7 translateMessage()函数 181

16.7.1 isupper()和islower()字符串

方法 182

16.7.2 用isupper()保留字符原大小写

形式 183

16.8 生成随机密钥 184

16.9 调用main()函数 184

16.10 小结 185

16.11 习题 185

第 17章 破解简单代换密码 186

17.1 使用单词模式进行解密 186

17.1.1 寻找单词模式 187

17.1.2 寻找可能解密字母 187

17.2 破解程序总览 188

17.3 单词模式模块 189

17.4 简单代换破解程序的源代码 190

17.5 简单代换破解程序的运行示例 193

17.6 创建模块和常量 193

17.7 用正则表达式查找字符 194

17.8 创建main()函数 194

17.9 向用户显示破解结果 195

17.10 创建密文映射 195

17.10.1 创建空映射 196

17.10.2 向映射添加字母 196

17.10.3 取两个映射的交集 197

17.10.4 字母映射辅助函数的工作

原理 198

17.10.5 识别映射中已确定的明文

字母 201

17.10.6 测试removeSolvedLetterFrom-

Mapping()函数 203

17.11 hackSimpleSub()函数 203

17.11.1 replace()字符串方法 205

17.11.2 解密消息 205

17.11.3 在交互式运行环境中进行

解密 206

17.12 调用main()函数 207

17.13 小结 208

17.14 习题 208

第 18章 编写维吉尼亚密码 209

18.1 在维吉尼亚密码中使用多字母

密钥 209

18.1.1 密钥越长,维吉尼亚密码越

安全 211

18.1.2 选择一把抗字典攻击的密钥 212

18.2 维吉尼亚密码实现程序的源

代码 212

18.3 运行维吉尼亚密码实现程序的

样例 214

18.4 引入模块、设置常量和创建

main()函数 214

18.5 使用List-Append-Join模式

生成字符串 215

18.6 消息

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP