让我来问问你,Python不能做什么?
如果有人问你,Python能用来做什么,如果你用过Python,你肯定可以向他滔滔不绝地介绍Python的各种强大功能。但是,假如问你,Python不能做什么?你可能要思考一下了。
2020年1月份,TIOBE指数发布编程语言排行榜,Python语言排在第3名,TIOBE指数是一个编程社区指数,该指数根据编程语言在各大搜索引擎的搜索次数等指标,编制编程语言排行榜,搜索引擎包括Google, Google Blogs, MSN, Yahoo!, Baidu, Wikipedia和YouTube等。
从近几年编程语言排行榜得出,Python的热度一直在上升,尤其是在人工智能和机器学习变成热门话题。作为一名安全测试,我更关心的是,Python对我的工作有什么帮助。
网络数据包分析
当从网络设备中抓取到数据包后,有时需要提取其中的数据部分。使用wireshark打开数据包文件后,对于基于TCP的协议,有个追踪数据流的功能,然后可以复制该数据流中,TCP协议的数据部分。该方法仅限于,复制一个TCP连接的所有数据流,而这个方法,对于获取该数据包文件中,所有数据包的TCP数据部分,就无效了。Python中的scapy库,完美解决了这个问题,在scapy中,rdpcap()函数可以读取数据包文件,对每个数据包进行解析,我们只需要遍历数据包,提取每个TCP包的数据部分,保持到文本文件中即可。
爬虫或接口测试
Python是用于爬虫的最佳工具之一。实际上,把“之一”去掉也不为过,从urllib到urllib2,在到更加简洁和便于使用的requests,这些库真是便宜了爬虫工程师,但要注意合法使用,网上这样的报道很多,非法爬取网站,结果是,一江春水向东流,从此不见了踪影。
加密与解密
Hash、对称加密和非对称加密,当然也包括解密,以及大多数的编码,这些在Python眼中,根本就是小儿科,不算什么。Hashlib、pycrypto、base64等,这些工具,会让加密与解密变得简单。但是,用Python来做加密和解密有一个问题,它的效率会低于C语言等编译型的编程语言,因此,当需要追求性能时,使用Python显得就不那么合适了。
那么Python还能做些什么呢?
Web开发、科学计算、机器学习、数据处理。。。
我所知有限,只能等到需要用到的时候,再去学习更多关于Python的内容。
另外,Python是一个工具,只要能解决问题就行。不管黑猫白猫,能捉到老鼠,就是好猫。