相关截图:

资料简介:

Python是一种高级程序设计语言,因其简洁、易读及可扩展性日渐成为程序设计领域备受推崇的语言。同时,Python语言在算法领域也得到了很好的应用。本书通过理论和实例相结合的方式介绍了多种加密算法。全书共分24章,由浅深地介绍了与密码学编程相关的各类基础知识、编程技巧以及算法实现。除此之外,本书还提供了相应的源码下载资源,以供读者更好地行探索和学习。本书适合Python初学者和密码学的初学者,也适合信息安全从业人员。

资料目录:

内容提要

作者简介

前言

第1章 制作纸质加密工具

1.1 密码学是什么

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

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

3.1 一些简单的数学知识

3.2 整数和浮点数

3.3 表达式

3.4 运算符顺序

3.5 计算表达式

3.6 错误是可以接受的

3.7 A组练习

3.8 每个值都有一个数据类型

3.9 通过赋值语句把值存到变量里

3.10 重写变量

3.11 使用多个变量

3.12 变量名

3.13 驼峰式大小写

3.14 B组练习

3.15 小结

第4章 字符串和写程序

4.1 字符串

4.2 使用+运算符的字符串连接

4.3 使用*运算符的字符串复制

4.4 使用print()函数输出值

4.5 转义字符

4.6 引号和双引号

4.7 A组练习

4.8 索引操作

4.9 负索引

4.10 分片操作

4.11 空分片索引

4.12 B组练习

4.13 在IDLE的文件编辑器里写程序

4.14 Hello World!

4.15 Hello World的源代码

4.16 保存你的程序

4.17 运行你的程序

4.18 打开你保存的程序

4.19 “Hello World”程序如何工作

4.20 注释

4.21 函数

4.22 print()函数

4.23 input()函数

4.24 结束程序

4.25 C组练习

4.26 小结

第5章 反转加密法

5.1 反转加密法

5.2 反转加密法程序的源代码

5.3 运行反转加密法程序

5.4 用在线比较工具检查你的源代码

5.5 这个程序如何工作

5.6 len()函数

5.7 while循环简介

5.8 布尔数据类型

5.9 比较运算符

5.10 条件

5.11 代码块

5.12 while循环语句

5.13 “增长”一个字符串

5.14 一步一步跟踪程序

5.15 在我们的程序里使用input()

5.16 A组练习

5.17 小结

第6章 凯撒加密法

6.1 实现程序

6.2 凯撒加密法程序的源代码

6.3 运行凯撒加密法程序

6.4 使用在线比较工具检查你的源代码

6.5 A组练习

6.6 这个程序如何工作

6.7 使用import语句导入模块

6.8 常量

6.9 upper()和lower()字符串方法

6.10 for循环语句

6.11 相当于for循环的while循环

6.12 B组练习

6.13 if语句

6.14 else语句

6.15 elif语句

6.16 in和not in运算符

6.17 find()字符串方法

6.18 C组练习

6.19 回到代码

6.20 显示和复制加密/解密之后的字符串

6.21 加密非字母字符

6.22 小结

第7章 暴力破译凯撒加密法

7.1 破译加密

7.2 暴力破译

7.3 凯撒加密法破译程序的源代码

7.4 运行凯撒加密法破译程序

7.5 这个程序如何工作

7.6 range()函数

7.7 回到代码

7.8 字符串格式化

7.9 A组练习

7.10 小结

第8章 使用换位加密法加密

8.1 换位加密法

8.2 A组练习

8.3 换位加密法加密程序

8.4 换位加密法加密程序的源代码

8.5 运行换位加密法加密程序

8.6 这个程序如何工作

8.7 使用def语句创建你自己的函数

8.8 程序的main()函数

8.9 形参

8.10 对形参的修改只存在于函数之内

8.11 全局作用域和本地作用域里的变量

8.12 global语句

8.13 B组练习

8.14 列表数据类型

8.15 使用list()函数把区间对象转换成列表

8.16 重新赋值列表里的项

8.17 重新赋值字符串里的字符

8.18 列表的列表

8.19 C组练习

8.20 在列表上使用len()和in运算符

8.21 使用+和*运算符的列表连接和复制

8.22 D组练习

8.23 换位加密算法

8.24 增强赋值运算符

8.25 回到代码

8.26 join()字符串方法

8.27 返回值和return语句

8.28 E组练习

8.29 回到代码

8.30 特殊的 name 变量

8.31 密钥的大小和消息的长度

8.32 小结

第9章 使用换位加密法解密

9.1 在纸上使用换位加密法解密

9.2 练习A组

9.3 换位加密法解密程序

9.4 换位加密法解密程序的源代码

9.5 这个程序如何工作

9.6 math.ceil()、math.floor()和round()函数

9.7 and和or布尔运算符

9.8 B组练习

9.9 真值表

9.10 and和or运算符可以简化代码

9.11 布尔运算符的运算顺序

9.12 回到代码

9.13 C组练习

9.14 小结

第10章 写一个程序测试我们的程序

10.1 换位加密法测试程序的源代码

10.2 运行换位加密法测试程序

10.3 这个程序如何工作

10.4 伪随机数和random.seed()函数

10.5 random.randint()函数

10.6 引用

10.7 copy.deepcopy()函数

10.8 A组练习

10.9 random.shuffle()函数

10.10 随机打乱一个字符串

10.11 回到代码

10.12 sys.exit()函数

10.13 测试我们的测试程序

10.14 小结

第11章 加密和解密文件

11.1 纯文本文件

11.2 换位加密法文件加密程序的源代码

11.3 运行换位加密法文件加密程序

11.4 读取文件

11.4.1 open()函数和文件对象

11.4.2 read()文件对象方法

11.4.3 close()文件对象方法

11.5 写入文件

write()文件对象方法

11.6 这个程序如何工作

11.7 os.path.exists()函数

11.8 startswith()和endswith()字符串方法

11.9 title()字符串方法

11.10 time模块和time.time()函数

11.11 回到代码

11.12 A组练习

11.13 小结

第12章 通过编程检测英文

12.1 计算机如何理解英文

12.2 A组练习

12.3 检测英文模块

12.4 检测英文模块的源代码

12.5 这个程序如何工作

12.6 字典和字典数据类型

12.7 添加或修改字典里的项

12.8 B组练习

12.9 在字典上使用len()函数

12.10 在字典上使用in运算符

12.11 在字典上使用for循环

12.12 C组练习

12.13 字典与列表之间的区别

12.14 在字典上查找项比在列表上更快

12.15 split()方法

12.16 None值

12.17 回到代码

12.18 “除以零”错误

12.19 float()、int()和str()函数以及整数除法

12.20 D组练习

12.21 回到代码

12.22 append()列表方法

12.23 默认参数值

12.24 计算比例

12.25 E组练习

12.26 小结

第13章 破译换位加密法

13.1 换位加密法破译程序的源代码

13.2 运行换位加密法破译程序

13.3 这个程序如何工作

13.4 使用三引号的多行字符串

13.5 回到代码

13.6 strip()字符串方法

13.7 A组练习

13.8 小结

第14章 取模运算与乘数加密法和仿射加密法

14.1 噢,不,数学!

14.2 数学,噢耶!

14.3 取模运算(又名时钟运算)

14.4 取模运算符%

14.5 A组练习

14.6 GCD:最大公约数(又名最大公因数)

14.7 使用古氏积木(Cuisenaire rods)可视化因数和GCD

14.8 B组练习

14.9 多重赋值

14.10 通过多重赋值交换值

14.11 找出两个数字的GCD的欧几里得算法

14.12 “互质”

14.13 C组练习

14.14 乘数加密法

14.15 D组练习

14.16 乘数加密法 + 凯撒加密法 = 仿射加密法

14.17 仿射密钥的第一个问题

14.18 使用仿射加密法解密

14.19 找出模逆

14.20 //整数除法运算符

14.21 cryptomath模块的源代码

14.22 E组练习

14.23 小结

第15章 仿射加密法

15.1 仿射加密法程序的源代码

15.2 运行仿射加密法程序

15.3 A组练习

15.4 这个程序如何工作

15.5 把一个密钥分成两个密钥

15.6 元组数据类型

15.7 密钥的输入验证

15.8 仿射加密法加密函数

15.9 仿射加密法解密函数

15.10 生成随机密钥

15.11 仿射密钥的第二个问题:仿射加密法可以有多少个密钥

15.12 小结

第16章 破译仿射加密法

16.1 仿射加密法破译程序的源代码

16.2 运行仿射加密法破译程序

16.3 这个程序如何工作

16.4 仿射加密法破译函数

16.5 **指数运算符

16.6 continue语句

16.7 A组练习

16.8 小结

第17章 简单替代加密法

17.1 使用纸笔实现简单替代加密法

17.2 A组练习

17.3 简单替代加密法的源代码

17.4 运行简单替代加密法程序

17.5 这个程序如何工作

17.6 程序的main()函数

17.7 sort()列表方法

17.8 包装器函数

17.9 程序的translateMessage()函数

17.10 isupper()和islower()字符串方法

17.11 B组练习

17.12 生成随机密钥

17.13 加密空格和标点符号

17.14 C组练习

17.15 小结

第18章 破译简单替代加密法

18.1 计算单词模式

18.2 获取密词的候选单词列表

18.3 A组练习

18.4 单词模式模块的源代码

18.5 运行单词模式模块

18.6 这个程序如何工作

18.7 pprint.pprint()和pprint.pformat()函数

18.8 在Python里使用列表创建字符串

18.9 计算单词模式

18.10 单词模式程序的main()函数

18.11 破译简单替代加密法

18.12 简单替代破译程序的源代码

18.13 破译简单替代加密法(理论)

18.14 使用交互式Shell探索破译函数

18.15 这个程序如何工作

18.16 导入所有东西

18.17 正则表达式和sub()正则方法简介

18.18 破译程序的main()函数

18.19 部分破译加密法

18.20 空密字映射

18.21 把字母添加到密字映射

18.22 计算两个密字映射的交集

18.23 从密字映射移除已经破译的字母

18.24 破译简单替代加密法

18.25 从密字映射创建密钥

18.26 我们不能把空格也加密吗

18.27 总结

第19章 维吉尼亚加密法

19.1 不可破译的加密法

19.2 维吉尼亚密钥里的多个“密钥”

19.3 维吉尼亚加密法程序的源代码

19.4 运行维吉尼亚加密法程序

19.5 这个程序如何工作

19.6 小结

第20章 频率分析

20.1 字母频率和ETAOIN

20.1.1 匹配字母频率

20.1.2 计算频率匹配分值的例子

20.1.3 另一个计算频率匹配分值的例子

20.1.4 破译每个子密钥

20.2 匹配字母频率的代码

20.3 这个程序如何工作

20.4 最常见的字母“ETAOIN”

20.5 这个程序的getLettersCount()函数

20.6 这个程序的getItemAtIndexZero()函数

20.7 这个程序的getFrequencyOrder()函数

20.8 sort()方法的key和reverse关键字参数

20.9 把函数作为值传递

20.10 通过keys()、values()和items()字典方法把字典转换成列表

20.11 对字典的项进行排序

20.12 这个程序的englishFreqMatchScore()函数

20.13 小结

第21章 破译维吉尼亚加密法

21.1 字典攻击

21.2 维吉尼亚字典攻击程序的源代码

21.3 运行维吉尼亚字典破译程序

21.4 readlines()文件对象方法

21.5 巴贝奇攻击和卡西斯基试验

21.6 卡西斯基试验的第1步——找出重复序列的间距

21.7 卡西斯基试验的第2步——获取间距的因数

21.8 从字符串获取每隔N个字母

21.9 频率分析

21.10 暴力破译可能密钥

21.11 维吉尼亚破译程序的源代码

21.12 运行维吉尼亚破译程序

21.13 这个程序如何工作

21.14 找出重复序列

21.15 计算因数

21.16 通过set()函数来移除重复值

21.17 卡西斯基测试算法

21.18 extend()列表方法

21.19 print()的end关键字参数

21.20 itertools.product()函数

21.21 break语句

21.22 A组练习

21.23 修改破译程序的常量

21.24 小结

第22章 一次一密加密法

22.1 牢不可破的一次一密加密法

22.2 为什么一次一密加密法是牢不可破的

22.3 小心伪随机

22.4 小心二次密码本加密法

22.5 二次密码本加密法就是维吉尼亚加密法

22.6 A组练习

22.7 小结

第23章 寻找质数

23.1 质数

23.2 合数

23.3 质数筛选模块的源代码

23.4 这个程序如何工作

23.5 如何判断一个数字是不是质数

23.6 埃拉托色尼筛选法

23.7 primeSieve()函数

23.8 检测质数

23.9 拉宾米勒模块的源代码

23.10 运行拉宾米勒模块

23.11 这个程序如何工作

23.12 拉宾米勒算法

23.13 新的经过改进的isPrime()函数

23.14 小结

第24章 公钥密码学和RSA加密法

24.1 公钥密码学

24.2 “教材”RSA的危险

24.3 身份验证的问题

24.4 中间人攻击

24.5 生成公钥和私钥

24.6 RSA密钥生成程序的源代码

24.7 运行RSA密钥生成程序

24.8 这个密钥生成程序如何工作

24.9 这个程序的generateKey()函数

24.10 RSA密钥文件格式

24.11 混合加密机制

24.12 RSA加密法程序的源代码

24.13 运行RSA加密法程序

24.14 A组练习

24.15 数字签名

24.16 RSA加密法程序如何工作

24.17 ASCII:使用数字来表示字符

24.18 chr()和ord()函数

24.19 B组练习

24.20 区块

24.21 使用getBlocksFromText()把字符串转成区块

24.22 encode()字符串方法和bytes数据类型

24.23 bytes()函数和bytes的decode()方法

24.24 C组练习

24.25 回到代码

24.26 min()和max()函数

24.27 insert()列表方法

24.28 RSA加密和解密的数学运算

24.29 pow()函数

24.30 从密钥文件读取公钥和私钥

24.31 完整的RSA加密流程

24.32 完整的RSA解密流程

24.33 D组练习

24.34 我们为什么不能破译RSA加密法

24.35 小结

python密码学编程pdf-Python密码学编程 PDF 下载相关推荐

  1. python编程入门到实践 百度云-python网络爬虫从入门到实践pdf

    python网络爬虫从入门到实践pdf是一本非常热门的编程教学.这本书籍详细讲解了Python以及网络爬虫相关知识,非常适合新手阅读,需要的用户自行下载吧. Python网络爬虫从入门到实践电子书介绍 ...

  2. python编程入门第3版pdf-Python编程入门第3版PDF电子书免费下载

    本文档的主要内容详细介绍的是Python编程入门第3版PDF电子书免费下载. Python是一种解释型.面向对象.动态数据类型的高级程序设计语言,自20世纪90年代初诞生至今,逐渐被广泛应用于处理系统 ...

  3. python编程入门-Python编程入门经典pdf(Python编程入门教程) 高清中文版

    Python编程入门经典pdf(Python编程入门教程)下载.Python编程入门经典pdf高清版帮助各位更好的进行Python编程的学习以及理解,最经典的课题,最深入的概念,让你在Python编程 ...

  4. python核心编程电子书_Python核心编程 PDF 超清第3版

    给大家带来的一篇关于Python编程相关的电子书资源,介绍了关于Python编程.Python核心编程方面的内容,本书是由人民邮电出版社出版,格式为PDF,资源大小22.4 MB,卫斯理编写,目前豆瓣 ...

  5. 面试分析《疯狂Python讲义》PDF代码+《Python核心编程第3版》PDF代码问题

    python语言现在很流行了,除了用在学校,也用在很多行业.python学起来较为简单,语法容易理解,也可用于数据分析. 国内的教材推荐看<疯狂python讲义>,对比国外也有很多好的参考 ...

  6. python web 开发从入门到精通 pdf,Python编程从入门到精通 PDF包下载

    Python开发学习合集 用Python做科学计算pdf 像计算机科学家一样思考python.pdf 利用python进行数据分析.pdf Python科学计算-张若愚.pdf Python标准库Do ...

  7. python游戏编程入门下载-Python游戏编程入门 中文pdf扫描版|网盘下载内附地址提取码|...

    Python是一种解释型.面向对象.动态数据类型的程序设计语言,在游戏开发领域,Python也得到越来越广泛的应用,并由此受到重视. 本书教授用Python开发精彩游戏所需的[]为重要的该你那.本书不 ...

  8. python编程入门 pdf-PYTHON游戏编程入门 PDF 下载

    相关截图: 图书简介: Python是一种解释型.面向对象.动态数据类型的高级程序设计语言,在游戏开发领域,Python也得到越来越广泛的应用,并由此受到重视. 本书教授用Python开发精彩游戏所需 ...

  9. 从零开始学习python编程-Python3.5从零开始学 PDF 下载

    前言 第1章 进入Python 3.5的精彩世界 1.1 Python的起源 1.2 Python的应用场合 1.3 从2.7到3.5,Python的新特性 1.4 如何学习Python 1.5 Py ...

  10. python编程入门pdf-Python游戏编程入门 中文pdf扫描版[41MB]

    Python是一种解释型.面向对象.动态数据类型的程序设计语言,在游戏开发领域,Python也得到越来越广泛的应用,并由此受到重视. 本书教授用Python开发精彩游戏所需的[]为重要的该你那.本书不 ...

最新文章

  1. php 将查询出的数组数据存入redis
  2. dcmtk程序包综述(2)
  3. 如何解决90%的NLP问题:逐步指导
  4. 拓扑目的 1.Pc9通过van3访问pc10 2.Pc9通过Vlan1\Vlan2访问pc11
  5. scrapy从安装到爬取煎蛋网图片
  6. 安装Linux后windows在哪启动,在Linux下安装windows后解决Linux不能启动能问题
  7. 重启java_让Java程序自动重启的实现方法(推荐)
  8. 一步一步写算法(之链表逆转)
  9. 家里的网很慢,如何用手机查看都有多少人使用?
  10. idea往gitee上传项目
  11. Atitit 指令集(IA及指令集架构 1. 指令集(IA:InstructionSet)是指CPU指令系统所能识别(翻译)执行的全部指令的集合。 1 1.1. (1)运算指令 1 1.2. (2)
  12. 23 岁那年你正处在哪个状态?现在呢?
  13. jxl 实现导出excel添加水印
  14. 洛谷:P4568 [JLOI2011]飞行路线(分层图 / 二分错解(x))
  15. Android 学习过程中遇到的知识点
  16. 使用GLSurfaceView实现涂鸦画板功能
  17. html背景渐变蓝色,CSS3网页渐变色背景,适用于IE
  18. Java单元测试实践-06.Mock后Stub静态方法
  19. 为什么要给网桥分配IP地址
  20. 用成员函数和友元函数重载运算符

热门文章

  1. 编写UEditor插件
  2. django错误参考
  3. 如何在SQL Server中使用触发器
  4. 洛谷 P2746 [USACO5.3]校园网Network of Schools
  5. 3dContactPointAnnotationTool开发日志(二一)
  6. [poj] 2318 TOYS || 判断点在多边形内
  7. systemctl介绍
  8. SOC(网络安全管理平台)
  9. 关于大型网站技术演进的思考(一)--存储的瓶颈(上)
  10. 为什么选择图形数据库,为什么选择Neo4j?