前言
Python语言经过30多年的发展,已经渗透到各个领域,特别是在网络空间安全和信息安全领域,越来越多的安全工具都使用Python开发,Python已经成为网络空间安全专业和信息安全专业学生必备的技能之一,以及培养学生安全思维的首选语言。
缘起
编者从事信息安全专业的课程教学20年,在课程理论教学、实践教学以及指导学生比赛和创新项目中,见证学生从使用工具到工具开发的迫切需求。特别在最近5年的Python课程教学实践中,将Python语言编程实践应用到信息安全数学基础、应用密码学、计算机取证等课程的教学中,愈发感受到Python语言在安全领域的重要意义,通过Python语言能够培养学生的计算思维和安全思维。
致读者
对于零基础且关注网络安全的读者,建议从头到尾逐章阅读; 对于有一定基础并关注网络安全的读者,建议首先浏览第2~8章的安全专题,然后进入第9章的综合案例; 对于零基础且不需要了解网络安全的读者,建议逐章阅读第2~8章,并且可以跳过这些章节的安全专题。
内容组织特色
(1) 采用广度优先方式介绍Python程序设计知识,以面向过程编程为主介绍面向对象编程模式。本书将基础内容和综合案例相结合,使读者既能通览Python知识点,又能将知识点用于解决具体问题。
(2) 针对网络安全实践,将知识点融入第2~8章中的安全专题,为第9章的综合案例实践奠定基础,由浅入深地把解决问题的完整思路展现给读者。同时将本书内容、课后习题和综合案例三位一体有机结合,多维度贯穿网络安全实践,并侧重密码学的编程实践。具体关联如下。
安 全 维 度相 关 章 节课 后 习 题
数学基础5.15、5.16、5.17、8.6
应用密码学2.9、4.6、5.8、6.9.2、7.7、8.7.2、8.7.3、9.12.11、3.7、4.10、4.11、4.12、5.12、5.13、5.14、7.9、7.10、7.11、7.12、9.1、9.2
计算机取证3.7、9.23.7、9.5
渗透测试4.6.1、6.9.1、8.7.1、9.46.9、9.6
异常检测9.39.3、9.4
注: “课后习题”列的x.y表示章号和习题编号,如5.15表示第5章习题中的第15题。
(3) 将基础编程训练和使用扩展模块相结合,提升读者的实践能力和解决问题的能力。例如,古典密码算法、AES算法的底层实现和简易的病毒扫描等,帮助读者在理解算法原理的基础上进行Python编程的实践,并注重提供给读者相应的内置模块和扩展模块进行调用,以帮助读者快速理解概念、原理并高效解决问题。安全相关的模块如下。
模 块 名 称相 关 章 节
hashlib2.9.1、5.8.1、6.9.2、8.7.2、8.7.3
hmac2.9.2
exifread3.7.2、9.2
PyPDF33.7.3、9.2
itertools4.6.1、8.7.1
PyCryptodome5.8.2、7.7.2、9.1
Urllib38.7.1、9.4
Scikitlearn9.3
Requests9.4
pillow9.4
pytesseract9.4
教学资源特色
本书具有丰富的立体化教学资源,包括配套的教学微课视频、源码、课后习题和答案,以及实验、实训等,同时提供教学课件方便教师的教与读者的学; 在头歌平台搜索“Python编程及网络安全实践”,即可获得各章节配套的单元测试、实训项目,包括难度等级逐步递增的闯关实训,并提供参考答案源码; 教师可以将实训项目应用到自己的课堂。此外,还提供在线视频教程综合案例,以扩展读者的知识广度和深度。
建议和反馈
由于编写时间仓促、编写水平有限,书中疏漏或不妥之处在所难免,请广大读者、同行不吝赐教。
致谢
本书由桂林电子科技大学张瑞霞和智国建共同编写,其中,智国建负责第1~5章的编写(除安全专题之外),张瑞霞负责第6~9章以及第1~5章中安全专题的编写。
在本书的编写过程中得到了钟艳如教授和她的研究生曹良斌、邓国力、李清杨及本科生苏少杰和严晋飞等的大力支持,在此向他们表示感谢。从立项选题到编写完成历经了3年多的时间,在这3年多的时间里,家人的支持和两个宝贝是我前进的动力。特别感谢清华大学出版社的编辑们提供的大量帮助,本书才能够顺利出版。
张瑞霞2023年5月