oldboy 24th day. I love Python. 模块之hashlib, configparser, logging

一, 课前小甜点
二, 作业讲解, json补充
1, python 可以序列化的数据类型:
+===================+===============+
| dict | object | {key:value}
+-------------------+---------------+
| list, tuple | array | [1,2,3]
+-------------------+---------------+
| str | string | 'alex'
+-------------------+---------------+
| int, float | number | 100,103
+-------------------+---------------+
| True | true |
+-------------------+---------------+
| False | false |
+-------------------+---------------+
| None | null |
+-------------------+---------------+

2, json字符串, 和python的str 到底差在哪?
1, json字符串, 在数据的外面, 始终是用单引号引起来的,
2, json字符串, 如果数据是容器类的数据类型, 且,里面有字符串, 则字符串一定是双引号.

三, 今日内容
  1, hashlib 与加密相关, 实际是它是一堆算法的合集,被称为摘要算法(包含很多算法, 大概有七八个, 分别都是用于加密功能的.)
    1, hash() 哈希: 是一种算法, 返回的结果的内存地址. (hashlib与此函数无关)
    2, hashlib的过程就是将字符串转化成等长的数字的过程
    3, hashlib对相同的字符串转化成的数字相同.
    4, 不同的服务器, 对相同的字符串进行加密, 转化成的数字相同.
    5, 初始 hashlib的两种算算法: 用法: 1, 密文(密码加密); 2, 文件校验
      hashlib.md5() : 常用算法, 可以满足一般的常用需求:

      用法:

        第一步 创建一个md5的对象: ret=hashlib.md5( 可以加盐 )

        第二步: 进行加密( 必须是bytes类型): ret.update(s.encode())

        第三步得到加密后的结果(无论字符串多长 这个返回结果都是定长的), ret.hexdigest()
        撞库: 一个一个试, 因为它的存在所以不安全


      hashlib.sha(): 里面有很多中算法, 这里面的算法, 数字越大, 加密效率越低, 越安全. sha1 与md5 级别相同, 但是sha1 比 md5 更安全一些( 因为sha1出来的晚, 用的人比较少,撞库比较晚)

      用法: 同md5 一样.

  2, configparser 配置文件: 放置一些常用的 变量, 路径; 帮助自己 操作(创建, 增删改查)一个配置文件的模块
    config = configparser.Configparser() :创建一个对象
    config.write(文件句柄) : 对象调用write方法,把内容写到文件句柄中.
    增删改查的操作: 顺序: 先创建一个对象, 然后将文件读到内存中,在进行相应的操作.
  3, logging模块, 日志: 辅助自己记录日志的, 不是自动记录日志的. *********
    生活上的用处: 1, 公司员工的信息, 工号 等等需要日志.
          2, 淘宝, 京东 你的消费信息, 浏览记录等等都记录日志, 个性化推荐
          3, 头条的个性化设置.
    工作上的用处:1, 运维人员, 任何员工对服务器做过的任何操作, 都会记录到日志中.
          2, 如果你要是从事运维开发的工作, 各处都需要日志.
          3, debug模式, 需要依靠日志的
          4, 定时收集信息.
    1, 低配版的logging:
      logging.debug('debug message') #调试信息( 不常用)
      logging.info('info message' ) # 正常信息( 不常用)
      logging.warning('warning message') # 警告信息( 代码虽然不报错, 但是警告你写的不规范)
      logging.error('error message') # 错误信息
      logging.critical('critical message' ) # 严重错误信息
      logging.basicConfig(level=logging.ERROR, format='%s()...')

  1, 调整格式:(完善报错信息): 更改format 关键字参数
  2, low版 logging模块, 只能在 打印内容 或 写入文件, 进行二选一. 写入文件时, 编码方式 默认gbk
  2, 高配版用 logger 对象

猜你喜欢

转载自www.cnblogs.com/Fushengliangnian/p/9285799.html