将原本的字典、列表等内容转换成一个字符串的过程
目的:
1.以某种存储形式自定义对象持久化
2.将对象从一个地方传递到另一个地方
3.使程序更具维护性

json 模块

四个功能 dumps、dump、loads、load
dumps() 将一个字典转换成一个字符串
dump() 必须传文件描述符,将序列化的str保存在文件中
loads() 反序列 将一个字符串格式的字典转换成一个字典
load() 只接收文件描述符,完成了读取文件和反序列化

  1. +-------------------+---------------+
  2. | Python | JSON |
  3. +===================+===============+
  4. | dict | object |
  5. +-------------------+---------------+
  6. | list, tuple | array |
  7. +-------------------+---------------+
  8. | str | string |
  9. +-------------------+---------------+
  10. | int, float | number |
  11. +-------------------+---------------+
  12. | True | true |
  13. +-------------------+---------------+
  14. | False | false |
  15. +-------------------+---------------+
  16. | None | null |
  17. +-------------------+---------------+

pockle 模块

用于python特有的类型和python的类型间进行转换
可以把python中任意的数据类型序列化
dumps、dump(序列化,存)、loads(反序列化,读)、load

shelve 模块

open方法

摘要算法应用

摘要算法,md5,SHA1等。
摘要算法又称哈希算法,散列算法。通过一个函数,把任意长度的数据转换成一个长度固定的数据串

hash值特点:
1.主要传入的内容相同,得到的hash值必然相同=====>要用明文传输密码文件完整性校验
2.不能由hash值反解会内容
3.只要使用的hash算法不变,无论校验的内容有多大,得到的hash值长度是一定的

对指定的字符串进行加密。在进行md5哈希运算前,需要对数据进行编码,否指会报错。 update对指定字符串进行加密

digest()返回加密结果,是一个字节对象,
hexdigest()返回加密结果,是一个字符串对象


密码加盐


原因:对于一些简单的口令。黑客可以事先计算出常用口令的md5值,可以得到一个反推表,无需破解,只要对比MD5的数据口,就可以获得了常用口令的用户账号。 “加盐“就是对原密码添加额外的字符串,然后再生成MD5值

  1. import hashlib
  2. yan = '!任#意%字^符@' #定义加盐字符串
  3. pwd = input('>>>')
  4. md5_pwd = hashlib.md5()
  5. md5_pwd.update((pwd+yan).encode('UTF-8')) #加盐
  6. pwd = md5_pwd.hexdigest()
  7. #pwd = hashlib.new('md5',(pwd+yan).encode('UTF-8')).hexdigest() #也可以这样简写哦。。一句话搞定。

configparser模块

用来读取配置文件
read(fimename)读取配置文件,直接读取ini文件内容
sections()获取ini文件中所有的section,以列表形式返回[‘logging’,’mysql’]
options(sections)获取指定sections下所有options,以列表形式返回
intems(sections)获取指定sections下的所有键值对
get(section,option)获取section中中的potion的值,返回string类型
getint(section,option) 返回int类型 getfloat(section, option) 返回float类型 (section,option) 返回boolen类型

random

SYS 模块

正则表达式

findall 全部找到返回一个列表
search 只找到第一个匹配然后返回