python hashilib模块
摘要算法模块 :
能够把一个字符串数据类型的变量,转换成一个定长的,密文的字符串,字符串中的每一个字符都是一个十六进制数字.
对于同一个字符串,不管这个字符串有多长,只要是相同的字符串,无论在任何环境下,执行多少次,在任何语言中,只要使用相同的算法/相同的手段得到的结果永远都是相同的.
字符串不相同,得到的结果一定不同
# hashlib模块提供了摘要算法,如md5,sha1 # md5和sha1调用方法完全类似,不过sha1结果是40位16进制字符串. # 通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常为16进制的字符串) # 摘要函数是一个单项函数,通过数据转换数据串容易,反推很难 import hashlib # s = 'dkjlfhg' # a = hashlib.md5() #将算法赋值给a # a.update(s.encode('utf-8'))#转码为utf-8,本身为bytes类型 # b = a.hexdigest()#经过两步运算得到一串32位的字符串 # print(b,type(b)) #如果待转换数据量非常大,可以分块多次调用update(),最后计算结果是一样的 s = 'akjfhalkjfhga' a = hashlib.md5() a.update(s[:5].encode('utf-8')) a.update(s[5:].encode('utf-8')) b = a.hexdigest() print(b) a = hashlib.md5() a.update(s.encode('utf-8')) x = a.hexdigest() print(x)#两次转换结果相同