python hashlib模块详解

hashlib 是python自带的加密模块,提供了一些基础常用的加密方式,如:md5(), sha1(), sha224(), sha256(), sha384(), sha512(), blake2b(), blake2s()

Hash 对象提供了4个方法:

--update(data):更新hash对象的字节数据,data是需要加密的文本内容,需要转为bytes类型,如果abc123.encode() 将字符串abc123转为bytes类型。

--digest():返回加密后的bytes值内容,类型:bytes

--hexdigest():返回加密后的哈希值文本内容。

--copy():复制hash 对象信息。

 

Md5加密

方式一:

import hashlib

m = hashlib.md5("123456".encode())
print("打印md5密文-bytes类型:",m.digest())
print("打印md5密文-哈希值:",m.hexdigest())

执行结果:

方式二:

import hashlib

m = hashlib.md5()
m.update("123456".encode())  # 通过md5对象的update方法对内容进行加密
print("打印md5加密结果,bytes类型:",m.digest())
print("打印md5加密结果,哈希值:",m.hexdigest())

执行结果:

方式三:

import hashlib

# name 对应加密类型,不区分大小写
# data 需要加密的内容,需转为bytes类型
m = hashlib.new(name="mD5",data="123456".encode())
print("打印通过new调用md5加密结果,bytes类型:",m.digest())
print("打印通过new调用md5加密结果,哈希值:",m.hexdigest())

执行结果:

 

Sha1加密:

方式一、

import hashlib

m = hashlib.sha1("123456".encode())
print("直接通过sha1方法进行加密,结果bytes类型:",m.digest())
print("直接通过sha1方法进行加密,哈希值:",m.hexdigest())

执行结果:

方式二、

import hashlib

m = hashlib.sha1()
m.update("123456".encode())
print("通过sha1对象update方法进行加密,结果bytes类型:",m.digest())
print("通过sha1对象update方法进行加密,哈希值:",m.hexdigest())

执行结果:

 方式三、

import hashlib

# name 对应加密类型,不区分大小写
# data 需要加密的内容,需转为bytes类型
m = hashlib.new(name="sha1",data="123456".encode())
print("打印通过new调用sha1加密结果,bytes类型:",m.digest())
print("打印通过new调用sha1加密结果,哈希值:",m.hexdigest())

执行结果:

 

sha224加密:

方式一、

import hashlib

m = hashlib.sha224("123456".encode())
print("直接通过sha224方法进行加密,结果bytes类型:",m.digest())
print("直接通过sha224方法进行加密,哈希值:",m.hexdigest())

执行结果:

方式二、

import hashlib

m = hashlib.sha224()
m.update("123456".encode())
print("通过sha224对象update方法进行加密,结果bytes类型:",m.digest())
print("通过sha224对象update方法进行加密,哈希值:",m.hexdigest())

执行结果:

方式三、

import hashlib

# name 对应加密类型,不区分大小写
# data 需要加密的内容,需转为bytes类型
m = hashlib.new(name="sha224",data="123456".encode())
print("打印通过new调用sha224加密结果,bytes类型:",m.digest())
print("打印通过new调用sha224加密结果,哈希值:",m.hexdigest())

执行结果:

 

 

sha256加密:

方式一、

import hashlib

m = hashlib.sha256("123456".encode())
print("直接通过sha256方法进行加密,结果bytes类型:",m.digest())
print("直接通过sha256方法进行加密,哈希值:",m.hexdigest())

执行结果:

方式二、

import hashlib

m = hashlib.sha256()
m.update("123456".encode())
print("通过sha256对象update方法进行加密,结果bytes类型:",m.digest())
print("通过sha256对象update方法进行加密,哈希值:",m.hexdigest())

执行结果:

方式三、

import hashlib

# name 对应加密类型,不区分大小写
# data 需要加密的内容,需转为bytes类型
m = hashlib.new(name="sha256",data="123456".encode())
print("打印通过new调用sha256加密结果,bytes类型:",m.digest())
print("打印通过new调用sha256加密结果,哈希值:",m.hexdigest())

执行结果:

 

 

sha384加密:

方式一、

import hashlib

m = hashlib.sha384("123456".encode())
print("直接通过sha384方法进行加密,结果bytes类型:",m.digest())
print("直接通过sha384方法进行加密,哈希值:",m.hexdigest())

执行结果:

 方式二、

import hashlib

m = hashlib.sha384()
m.update("123456".encode())
print("通过sha384对象update方法进行加密,结果bytes类型:",m.digest())
print("通过sha384对象update方法进行加密,哈希值:",m.hexdigest())

执行结果:

 方式三、

import hashlib

# name 对应加密类型,不区分大小写
# data 需要加密的内容,需转为bytes类型
m = hashlib.new(name="sha384",data="123456".encode())
print("打印通过new调用sha384加密结果,bytes类型:",m.digest())
print("打印通过new调用sha384加密结果,哈希值:",m.hexdigest())

执行结果:

 

Sha512加密:

方式一、

import hashlib

m = hashlib.sha512("123456".encode())
print("直接通过sha512方法进行加密,结果bytes类型:",m.digest())
print("直接通过sha512方法进行加密,哈希值:",m.hexdigest())

执行结果:

 方式二、

import hashlib

m = hashlib.sha512()
m.update("123456".encode())
print("通过sha512对象update方法进行加密,结果bytes类型:",m.digest())
print("通过sha512对象update方法进行加密,哈希值:",m.hexdigest())

执行结果:

 方式三、

import hashlib

# name 对应加密类型,不区分大小写
# data 需要加密的内容,需转为bytes类型
m = hashlib.new(name="sha512",data="123456".encode())
print("打印通过new调用sha512加密结果,bytes类型:",m.digest())
print("打印通过new调用sha512加密结果,哈希值:",m.hexdigest())

执行结果:

 

blake2b加密:

方式一、

import hashlib

m = hashlib.blake2b("123456".encode())
print("直接通过blake2b方法进行加密,结果bytes类型:",m.digest())
print("直接通过blake2b方法进行加密,哈希值:",m.hexdigest())

执行结果:

方式二、

import hashlib

m = hashlib.blake2b()
m.update("123456".encode())
print("通过blake2b对象update方法进行加密,结果bytes类型:",m.digest())
print("通过blake2b对象update方法进行加密,哈希值:",m.hexdigest())

执行结果:

方式三、

import hashlib

# name 对应加密类型,不区分大小写
# data 需要加密的内容,需转为bytes类型
m = hashlib.new(name="blake2b",data="123456".encode())
print("打印通过new调用blake2b加密结果,bytes类型:",m.digest())
print("打印通过new调用blake2b加密结果,哈希值:",m.hexdigest())

执行结果:

 

blake2s加密:

方式一、

import hashlib

m = hashlib.blake2s("123456".encode())
print("直接通过blake2s方法进行加密,结果bytes类型:",m.digest())
print("直接通过blake2s方法进行加密,哈希值:",m.hexdigest())

执行结果:

 方式二、

import hashlib

m = hashlib.blake2s()
m.update("123456".encode())
print("通过blake2s对象update方法进行加密,结果bytes类型:",m.digest())
print("通过blake2s对象update方法进行加密,哈希值:",m.hexdigest())

执行结果:

方式三、

import hashlib

# name 对应加密类型,不区分大小写
# data 需要加密的内容,需转为bytes类型
m = hashlib.new(name="blake2s",data="123456".encode())
print("打印通过new调用blake2s加密结果,bytes类型:",m.digest())
print("打印通过new调用blake2s加密结果,哈希值:",m.hexdigest())

执行结果:

 

copy()用法:

import hashlib

# copy 方法使用
m = hashlib.md5()
m.update("123456".encode())
print("原hash 对象的解密结果:",m.hexdigest())
# copy 方法使用
copy_u = m.copy()
print("复制hash对象,打印的解密结果:",copy_u.hexdigest())
# 复制后,重新加密其他内容
copy_u.update("abcdef".encode())
print("复制新加密结果:",copy_u.hexdigest())

执行结果:

 

posted @ 2024-03-04 11:52  西夏一品唐  阅读(311)  评论(0编辑  收藏  举报