第十七天

今日内容

一、hashlib模块

1.1加密、验证完整性功能

  #hash算法:传入一段内容会的到一串hash值
  #hash值的三大特点
  #1、如果传入的内容与采用的算法一样,得到的hash值必然一样
  #2、只要采用的算法是固定的,hash值的长度就是固定的,不会随着内容的大小而变
  #3、hash值不可逆,不能通过hash值反解出内容是什么

  #1+2可以检验文件的完整性
  #1+3可以加密文件的内容

  # import hashlib
  # m = hashlib.md5()
  # #update内必须传入一个二进制类型
  # m.update("你".encode("utf-8"))
  # m.update("好".encode("utf-8"))
  # m.update("hello".encode("utf-8"))
  # m.update("哈哈".encode("utf-8"))
  # #实际上传入的就是你好hello哈哈
  # print(m.hexdigest())

1.2密码加盐

  #在加密一段内容的同时插入一些无关的内容,让破解密码的成本增加
  #在确认加密内容时也加入插入时的内容来验证加密内容是否相同
  #加密时
  import hashlib
  m = hashlib.md5()
  m.update("天王盖地虎".encode("utf-8"))
  m.update("加密内容".encode("utf-8"))
  m.update("宝塔正河妖".encode("utf-8"))
  a = m.hexdigest()
  #解密时
  import hashlib
  m = hashlib.md5()
  m.update("天王盖地虎".encode("utf-8"))
  m.update("输入内容".encode("utf-8"))
  m.update("宝塔正河妖".encode("utf-8"))
  b = m.hexdigest()
  #最后来比较a,b是否相等

二、subprocess模块

2.1控制操作系统的运行

  import subprocess
  obj = subprocess.Popen("tasklist",
             shell = True,
             stdout=subprocess.PIPE,    #管道:连接主进程与子进程的联系
             stderr=subprocess.PIPE
             )
  stdout_res = obj.stdout.read()
  stderr_res = obj.stderr.read()
  print(stdout_res.decode("gbk"))
                    #解码

三、os与sys模块

3.1操作文件(os即sys其他功能请查看egon老师博客)

  import os
  #递归创建文件夹
  # os.makedirs("a\b\c")
  #递归删除文件夹(只能删空的)
  # os.removedirs("a\b\c")
  #浏览当前文件夹
  res = os.listdir(".")
  print(res)
  #获取文件的大小,单位是字节
  # print(os.path.getsize("文件路径"))

  #获取文件路径
  import sys
  print(sys.argv)

四、configparser模块

4.1解析固定配置文件

  例:
        配置文件名为:config.ini
        内容为:
              [section1]
              k1 = v1
              k2:v2
              user=egon
              age=18
              is_admin=true
              salary=31

              [section2]
              k1 = v1

        解析固定配置文件内容:
              import configparser
              config = configparser.ConfigParser()
              config.read("config.ini")

              #查看配置文件中的标题
              res = config.sections()
              print(res)

              #将票题下的K值取出来
              res = config.options("section1")
              print(res)

              #拿到标题下的K:V
              res = config.items("section1")
              print(res)

              #拿到标题下的某一个值
              res = config.get("section1",'salary')
              print(res)
posted @ 2021-01-11 16:48  抓鬼少年  阅读(99)  评论(0编辑  收藏  举报