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)#两次转换结果相同

 

posted @ 2018-08-09 22:03  唯你如我心  阅读(550)  评论(0编辑  收藏  举报