图书介绍
Python密码学编程【2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载】

- (美)斯维加特(Al Sweigart) 著
- 出版社: 北京:人民邮电出版社
- ISBN:9787115424297
- 出版时间:2016
- 标注页数:324页
- 文件大小:55MB
- 文件页数:339页
- 主题词:软件工具-程序设计
PDF下载
下载说明
Python密码学编程PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章 制作纸质加密工具1
1.1 密码学是什么1
1.2 代码与加密法2
1.3 制作纸质加密轮盘2
1.4 虚拟加密轮盘4
1.5 如何使用加密轮盘加密4
1.6 如何使用加密轮盘解密5
1.7 另一个加密法工具:St.Cyr滑条6
1.8 A组练习6
1.9 不用纸质工具做加密7
1.10 B组练习9
1.11 双重强度加密9
1.12 通过计算机编程进行加密9
第2章 Pygame基础知识11
2.1 下载和安装Python11
2.1.1 Windows安装步骤11
2.1.2 OS X安装步骤12
2.1.3 Ubuntu和Linux安装步骤12
2.2 下载pyperclip.py12
2.3 启动IDLE12
2.4 特色程序13
2.5 行号和空格14
2.6 本书的文本换行14
2.7 在线跟踪程序15
2.8 使用在线比较工具检查输入的代码15
2.9 复制粘贴文本15
2.10 更多信息链接15
2.11 编程和密码学16
第3章 交互式Shell20
3.1 一些简单的数学知识20
3.2 整数和浮点数21
3.3 表达式21
3.4 运算符顺序22
3.5 计算表达式22
3.6 错误是可以接受的22
3.7 A组练习23
3.8 每个值都有一个数据类型23
3.9 通过赋值语句把值存到变量里23
3.10 重写变量24
3.11 使用多个变量25
3.12 变量名26
3.13 驼峰式大小写26
3.14 B组练习26
3.15 小结26
第4章 字符串和写程序28
4.1 字符串28
4.2 使用+运算符的字符串连接29
4.3 使用*运算符的字符串复制30
4.4 使用print()函数输出值30
4.5 转义字符31
4.6 引号和双引号32
4.7 A组练习32
4.8 索引操作33
4.9 负索引33
4.10 分片操作34
4.11 空分片索引35
4.12 B组练习35
4.13 在IDLE的文件编辑器里写程序35
4.14 Hello World!36
4.15 Hello World的源代码36
4.16 保存你的程序37
4.17 运行你的程序37
4.18 打开你保存的程序38
4.19 “Hello World”程序如何工作38
4.20 注释38
4.21 函数39
4.22 print()函数39
4.23 input()函数39
4.24 结束程序40
4.25 C组练习40
4.26 小结40
第5章 反转加密法41
5.1 反转加密法41
5.2 反转加密法程序的源代码41
5.3 运行反转加密法程序42
5.4 用在线比较工具检查你的源代码42
5.5 这个程序如何工作43
5.6 len()函数43
5.7 while循环简介44
5.8 布尔数据类型44
5.9 比较运算符45
5.10 条件46
5.11 代码块47
5.12 while循环语句47
5.13 “增长”一个字符串48
5.14 一步一步跟踪程序50
5.15 在我们的程序里使用input()52
5.16 A组练习52
5.17 小结52
第6章 凯撒加密法53
6.1 实现程序53
6.2 凯撒加密法程序的源代码53
6.3 运行凯撒加密法程序54
6.4 使用在线比较工具检查你的源代码55
6.5 A组练习55
6.6 这个程序如何工作55
6.7 使用import语句导入模块55
6.8 常量56
6.9 upper()和lower()字符串方法57
6.10 for循环语句58
6.11 相当于for循环的while循环59
6.12 B组练习59
6.13 if语句59
6.14 else语句60
6.15 elif语句60
6.16 in和not in运算符61
6.17 find()字符串方法62
6.18 C组练习62
6.19 回到代码62
6.20 显示和复制加密/解密之后的字符串64
6.21 加密非字母字符65
6.22 小结66
第7章 暴力破译凯撒加密法67
7.1 破译加密67
7.2 暴力破译67
7.3 凯撒加密法破译程序的源代码68
7.4 运行凯撒加密法破译程序68
7.5 这个程序如何工作69
7.6 range()函数69
7.7 回到代码70
7.8 字符串格式化72
7.9 A组练习72
7.10 小结72
第8章 使用换位加密法加密73
8.1 换位加密法73
8.2 A组练习74
8.3 换位加密法加密程序74
8.4 换位加密法加密程序的源代码75
8.5 运行换位加密法加密程序76
8.6 这个程序如何工作76
8.7 使用def语句创建你自己的函数76
8.8 程序的main()函数77
8.9 形参78
8.10 对形参的修改只存在于函数之内79
8.11 全局作用域和本地作用域里的变量79
8.12 global语句79
8.13 B组练习81
8.14 列表数据类型81
8.15 使用list()函数把区间对象转换成列表82
8.16 重新赋值列表里的项83
8.17 重新赋值字符串里的字符83
8.18 列表的列表83
8.19 C组练习84
8.20 在列表上使用len()和in运算符84
8.21 使用+和*运算符的列表连接和复制85
8.22 D组练习85
8.23 换位加密算法85
8.24 增强赋值运算符88
8.25 回到代码88
8.26 join()字符串方法90
8.27 返回值和return语句91
8.28 E组练习91
8.29 回到代码91
8.30 特殊的_name_变量92
8.31 密钥的大小和消息的长度93
8.32 小结93
第9章 使用换位加密法解密94
9.1 在纸上使用换位加密法解密94
9.2 练习A组96
9.3 换位加密法解密程序96
9.4 换位加密法解密程序的源代码96
9.5 这个程序如何工作97
9.6 math.ceil()、math.floor()和round()函数98
9.7 and和or布尔运算符101
9.8 B组练习102
9.9 真值表102
9.10 and和or运算符可以简化代码103
9.11 布尔运算符的运算顺序103
9.12 回到代码103
9.13 C组练习105
9.14 小结105
第10章 写一个程序测试我们的程序106
10.1 换位加密法测试程序的源代码106
10.2 运行换位加密法测试程序107
10.3 这个程序如何工作108
10.4 伪随机数和random.seed()函数108
10.5 random.randint()函数109
10.6 引用110
10.7 copy.deepcopy()函数112
10.8 A组练习112
10.9 random.shuff1e()函数112
10.10 随机打乱一个字符串113
10.11 回到代码114
10.12 sys.exit()函数114
10.13 测试我们的测试程序115
10.14 小结116
第11章 加密和解密文件117
11.1 纯文本文件117
11.2 换位加密法文件加密程序的源代码118
11.3 运行换位加密法文件加密程序120
11.4 读取文件120
11.4.1 open()函数和文件对象120
11.4.2 read()文件对象方法120
11.4.3 close()文件对象方法121
11.5 写入文件121
write()文件对象方法122
11.6 这个程序如何工作122
11.7 os.path.exists()函数123
11.8 startswith()和endswith()字符串方法123
11.9 title()字符串方法124
11.10 time模块和time.time()函数125
11.11 回到代码126
11.12 A组练习126
11.13 小结127
第12章 通过编程检测英文128
12.1 计算机如何理解英文128
12.2 A组练习130
12.3 检测英文模块130
12.4 检测英文模块的源代码130
12.5 这个程序如何工作131
12.6 字典和字典数据类型132
12.7 添加或修改字典里的项132
12.8 B组练习133
12.9 在字典上使用len()函数133
12.10 在字典上使用in运算符133
12.11 在字典上使用for循环134
12.12 C组练习134
12.13 字典与列表之间的区别134
12.14 在字典上查找项比在列表上更快135
12.15 split()方法135
12.16 None值136
12.17 回到代码136
12.18 “除以零”错误138
12.19 float()、int()和str()函数以及整数除法138
12.20 D组练习139
12.21 回到代码139
12.22 append()列表方法139
12.23 默认参数值140
12.24 计算比例141
12.25 E组练习142
12.26 小结143
第13章 破译换位加密法144
13.1 换位加密法破译程序的源代码144
13.2 运行换位加密法破译程序145
13.3 这个程序如何工作146
13.4 使用三引号的多行字符串146
13.5 回到代码147
13.6 strip()字符串方法148
13.7 A组练习150
13.8 小结150
第14章 取模运算与乘数加密法和仿射加密法151
14.1 噢,不,数学!151
14.2 数学,噢耶!151
14.3 取模运算(又名时钟运算)151
14.4 取模运算符%152
14.5 A组练习153
14.6 GCD:最大公约数(又名最大公因数)153
14.7 使用古氏积木(Cuisenaire rods)可视化因数和GCD154
14.8 B组练习155
14.9 多重赋值155
14.10 通过多重赋值交换值156
14.11 找出两个数字的GCD的欧几里得算法156
14.12 “互质”157
14.13 C组练习157
14.14 乘数加密法157
14.15 D组练习159
14.16 乘数加密法+凯撒加密法=仿射加密法159
14.17 仿射密钥的第一个问题159
14.18 使用仿射加密法解密160
14.19 找出模逆161
14.20 //整数除法运算符161
14.21 cryptomath模块的源代码162
14.22 E组练习163
14.23 小结163
第15章 仿射加密法164
15.1 仿射加密法程序的源代码164
15.2 运行仿射加密法程序166
15.3 A组练习166
15.4 这个程序如何工作166
15.5 把一个密钥分成两个密钥167
15.6 元组数据类型168
15.7 密钥的输入验证168
15.8 仿射加密法加密函数169
15.9 仿射加密法解密函数170
15.10 生成随机密钥171
15.11 仿射密钥的第二个问题:仿射加密法可以有多少个密钥172
15.12 小结173
第16章 破译仿射加密法174
16.1 仿射加密法破译程序的源代码174
16.2 运行仿射加密法破译程序175
16.3 这个程序如何工作176
16.4 仿射加密法破译函数177
16.5 **指数运算符177
16.6 continue语句178
16.7 A组练习180
16.8 小结180
第17章 简单替代加密法181
17.1 使用纸笔实现简单替代加密法181
17.2 A组练习182
17.3 简单替代加密法的源代码182
17.4 运行简单替代加密法程序183
17.5 这个程序如何工作184
17.6 程序的main()函数184
17.7 sort()列表方法185
17.8 包装器函数186
17.9 程序的translateMessage()函数187
17.10 isupper()和islower()字符串方法189
17.11 B组练习190
17.12 生成随机密钥190
17.13 加密空格和标点符号191
17.14 C组练习191
17.15 小结192
第18章 破译简单替代加密法193
18.1 计算单词模式193
18.2 获取密词的候选单词列表194
18.3 A组练习195
18.4 单词模式模块的源代码195
18.5 运行单词模式模块196
18.6 这个程序如何工作197
18.7 pprint.pprint()和pprint.pformat()函数197
18.8 在Python里使用列表创建字符串198
18.9 计算单词模式199
18.10 单词模式程序的main()函数200
18.11 破译简单替代加密法202
18.12 简单替代破译程序的源代码202
18.13 破译简单替代加密法(理论)205
18.14 使用交互式Shell探索破译函数205
18.15 这个程序如何工作209
18.16 导入所有东西209
18.17 正则表达式和sub()正则方法简介210
18.18 破译程序的main()函数211
18.19 部分破译加密法211
18.20 空密字映射212
18.21 把字母添加到密字映射213
18.22 计算两个密字映射的交集214
18.23 从密字映射移除已经破译的字母215
18.24 破译简单替代加密法217
18.25 从密字映射创建密钥219
18.26 我们不能把空格也加密吗220
18.27 小结220
第19章 维吉尼亚加密法221
19.1 不可破译的加密法221
19.2 维吉尼亚密钥里的多个“密钥”221
19.3 维吉尼亚加密法程序的源代码224
19.4 运行维吉尼亚加密法程序226
19.5 这个程序如何工作227
19.6 小结230
第20章 频率分析231
20.1 字母频率和ETAOIN231
20.1.1 匹配字母频率232
20.1.2 计算频率匹配分值的例子233
20.1.3 另一个计算频率匹配分值的例子233
20.1.4 破译每个子密钥234
20.2 匹配字母频率的代码234
20.3 这个程序如何工作236
20.4 最常见的字母“ETAOIN”237
20.5 这个程序的getLettersCount()函数237
20.6 这个程序的getItemAtIndexZero()函数238
20.7 这个程序的getFrequencyOrder()函数238
20.8 sort()方法的key和reverse关键字参数239
20.9 把函数作为值传递240
20.10 通过keys()、values()和items()字典方法把字典转换成列表241
20.11 对字典的项进行排序242
20.12 这个程序的englishFreqMatch Score()函数243
20.13 小结244
第21章 破译维吉尼亚加密法245
21.1 字典攻击245
21.2 维吉尼亚字典攻击程序的源代码245
21.3 运行维吉尼亚字典破译程序246
21.4 readlines()文件对象方法247
21.5 巴贝奇攻击和卡西斯基试验247
21.6 卡西斯基试验的第1步——找出重复序列的间距247
21.7 卡西斯基试验的第2步——获取间距的因数248
21.8 从字符串获取每隔N个字母249
21.9 频率分析249
21.10 暴力破译可能密钥251
21.11 维吉尼亚破译程序的源代码251
21.12 运行维吉尼亚破译程序256
21.13 这个程序如何工作258
21.14 找出重复序列259
21.15 计算因数260
21.16 通过set()函数来移除重复值261
21.17 卡西斯基测试算法263
21.18 extend()列表方法264
21.19 print()的end关键字参数268
21.20 itertools.product()函数269
21.21 break语句272
21.22 A组练习273
21.23 修改破译程序的常量273
21.24 小结274
第22章 一次一密加密法275
22.1 牢不可破的一次一密加密法275
22.2 为什么一次一密加密法是牢不可破的275
22.3 小心伪随机276
22.4 小心二次密码本加密法277
22.5 二次密码本加密法就是维吉尼亚加密法277
22.6 A组练习278
22.7 小结278
第23章 寻找质数279
23.1 质数279
23.2 合数280
23.3 质数筛选模块的源代码280
23.4 这个程序如何工作281
23.5 如何判断一个数字是不是质数282
23.6 埃拉托色尼筛选法283
23.7 primeSieve()函数284
23.8 检测质数285
23.9 拉宾米勒模块的源代码285
23.10 运行拉宾米勒模块287
23.11 这个程序如何工作287
23.12 拉宾米勒算法287
23.13 新的经过改进的isPrime()函数288
23.14 小结289
第24章 公钥密码学和RSA加密法291
24.1 公钥密码学291
24.2 “课本”RSA的危险292
24.3 身份验证的问题292
24.4 中间人攻击293
24.5 生成公钥和私钥293
24.6 RSA密钥生成程序的源代码294
24.7 运行RSA密钥生成程序295
24.8 这个密钥生成程序如何工作296
24.9 这个程序的generateKey()函数297
24.10 RSA密钥文件格式299
24.11 混合加密机制300
24.12 RSA加密法程序的源代码300
24.13 运行RSA加密法程序303
24.14 A组练习304
24.15 数字签名304
24.16 RSA加密法程序如何工作306
24.17 ASCII:使用数字来表示字符307
24.18 chr()和ord()函数308
24.19 B组练习308
24.20 区块308
24.21 使用getBlocksFromText()把字符串转成区块311
24.22 encode()字符串方法和bytes数据类型311
24.23 bytes()函数和bytes的decode()方法312
24.24 C组练习312
24.25 回到代码313
24.26 min()和max()函数313
24.27 insert()列表方法315
24.28 RSA加密和解密的数学运算316
24.29 pow()函数317
24.30 从密钥文件读取公钥和私钥318
24.31 完整的RSA加密流程318
24.32 完整的RSA解密流程320
24.33 D组练习321
24.34 我们为什么不能破译RSA加密法321
24.35 小结323
热门推荐
- 285387.html
- 809580.html
- 729020.html
- 1214470.html
- 3907806.html
- 771408.html
- 2405827.html
- 127183.html
- 1306823.html
- 465550.html
- http://www.ickdjs.cc/book_2266681.html
- http://www.ickdjs.cc/book_619132.html
- http://www.ickdjs.cc/book_3684144.html
- http://www.ickdjs.cc/book_2136721.html
- http://www.ickdjs.cc/book_347461.html
- http://www.ickdjs.cc/book_3652920.html
- http://www.ickdjs.cc/book_3509491.html
- http://www.ickdjs.cc/book_2602442.html
- http://www.ickdjs.cc/book_2896989.html
- http://www.ickdjs.cc/book_3223308.html