模块-->hashlib

hshlib模块

相当于对代码进行加密

  • MD5   结果是16位的字节码

import hashlib

msg = hashlib.md5()         #创建一个md5 的对象
msg.update("你好呀".encode("utf-8"))     #把需要加密的内容添加给这个对象,
                                        注意:update()内的参数必须是字节,如果不是就encode为字节
msg = msg.hexdigest()          #加密
print(msg)

结果:4f65fdb33e0f2bd0de6bd1b41fdea968

 

如果数据量很大,可以分块多次调用update(),最后计算的结果是一样的:

粗略原因是:加密是对每一个字节进行加密,只要需要加密的内容是一致得,无论分多少行,加密一次,那加密结果都是一样的

import hashlib

md5 = hashlib.md5()
md5.update('how你好啊,我不好'.encode('utf-8'))
print(md5.hexdigest())
# 结果: 3bfa4bfb7b59a59f27c24ebdd89cd13c



import hashlib
md5
= hashlib.md5() md5.update('how'.encode('utf-8')) md5.update('你好啊,我不好'.encode('utf-8')) print(md5.hexdigest()) # 结果: 3bfa4bfb7b59a59f27c24ebdd89cd13c

    加盐

# 创建md5对象时在括号内添加内容就叫"加盐",为了提高安全性.同样是字节,需要进行解码
import hashlib

msg = hashlib.md5(",".encode("utf-8"))   #创建md5对象
msg.update("你好呀".encode("utf-8"))
msg = msg.hexdigest()         
print(msg)
结果:caaac0ad1f544161e200772008ccd6ba

 

 

  • SHA1

结果40位字节码,更安全,但是加密时间长,运行慢,效率低

import hashlib

msg = hashlib.sha1(",".encode("utf-8"))  #创建一个sha1对象
msg.update("你好呀".encode("utf-8"))
msg = msg.hexdigest()
print(msg)
结果:bd9d06b40de7aae7bb66eb2db356805941e882de

加盐方式与MD5加盐方式相同   

SHA256    结果64位

SHA512    结果128位

 

越长越安全

 

posted @ 2019-01-17 22:36  王小瘦吖  阅读(102)  评论(0编辑  收藏  举报