python的hashlib模块

hashlib模块是用来对字符串进行hash加密的模块,得到的hash密文不会改变,稳定;用于注册、登录时用户名、密码等加密使用。
一.函数分析:
1.共有5种加密算法:
md5(),sha1(),sha224(),sha256(),sha384(),sha512(),分别得到不同的加密密文。
2.hashlib.hexdigest():获取加密的密文,16进制,无参数。
3.hashlib.digest():获取加密的密文,二进制,无参数。
4.hashlib.copy():复制一份当前创建的hash对象,无参数。
5.update(str1.encode("utf-8")):更新加密的密文,得到的密文与原来的密文不相同。

hash.name:查看当前获得的hash对象的加密算法;

hash.digest_size:hash密文占多少个字节;

hash.block_size:hash数据块的大小。

hashlib.algorithms_guaranteed:查看所有平台都支持的hash算法;

hashlib.algorithms_available:查看所有的hash加密算法。


二。运用:
1.创建哈希对象,有两种方式:
m = hashlib.new("md5",b"cai") # 选择md5加密函数加密字符串“cai”
m = hashlib.md5("cai".encode("utf-8")) # 加密的另一种写法

2.特殊用法:当需要加密的字符串过大的时候,可以使用同一个hash对象分多次加密,update(a)+update(b)=update(a+b).
举例:

1 m = hb.md5()
2 m1 = m.copy()
3 m.update("a".encode("utf-8"))
4 m.update("b".encode("utf-8"))
5 print(m.hexdigest()) # 输出密文1
6 m1.update("ab".encode("utf-8"))
7 print(m1.hexdigest()) # 输出与密文1完全相同的密文2

3.例子:

 1 import hashlib as hb
 2
 3
 4 def hash_fun(str1):
 5 m = hb.md5(str1.encode("utf-8")) # 创建一个hash对象,并对str1加密
 6 print(m.hexdigest()) # 输出得到的密文
 7 m.update(str1.encode("utf-8")) # 更新密文
 8 print(m.hexdigest()) # 输出更新密文,与前面不再相同
 9 print(m.digest()) # 获取字节密文
10 print(m.block_size) # 获取hash块的大小
11 print(m.digest_size) # 获取密文的字节数
12 print(m.name) # 获取加密算法的名字md5
13
14
15 def hash_fun2(str1):
16 m = hb.md5(str1.encode("utf-8"))
17 print(m.hexdigest())
18 a = m.copy() # 拷贝一个hash对象
19 print(a.hexdigest()) # 得到的密文没改变
20
21
22 def hash_fun1(str1):
23 m = hb.sha1(str1.encode("utf-8")) # sha1算法加密
24 print(m.hexdigest())
25 m1 = hb.sha224(str1.encode("utf-8")) # sha224算法加密
26 print(m1.hexdigest())
27
28
29 def hash_fun3():
30 m = hb.md5()
31 m1 = m.copy()
32 m.update("a".encode("utf-8"))
33 m.update("b".encode("utf-8"))
34 print(m.hexdigest())
35 m1.update("ab".encode("utf-8"))
36 print(m1.hexdigest())
37
38
39 if __name__ == ‘__main__‘:
40 hash_fun("cai")
41 print()
42 hash_fun1("cai")
43 print()
44 hash_fun2("cai")
45 print()
46 hash_fun3()

结果如下:

时间: 2024-10-10 07:36:26

python的hashlib模块的相关文章

Python的hashlib模块学习

python的hashlib模块提供一些常用的加密功能 例如获取字符串'Nobody inspects the spammish repetition'的MD5校验值 In [48]: import hashlib In [49]: m=hashlib.md5() In [50]: m.update('Nobody inspects') In [51]: m.update('the spammish repetition') In [52]: m.digest() Out[52]: '%\x8d

Python之hashlib模块的使用

hashlib模块主要的作用: 加密保护消息安全,常用的加密算法如MD5,SHA1等. 1.查看可用的算法有哪些 #!/usr/bin/env python # -*- coding: utf-8 -*- import hashlib # 始终可用的算法 print('始终可用的算法 : {}'.format(sorted(hashlib.algorithms_guaranteed))) print('需要结合OpenSSL可用算法 : {}'.format(sorted(hashlib.alg

python之hashlib模块

示例:大文件md5校验 def md5(fileMd5): import hashlib md5_value = hashlib.md5() with open(fileMd5,'rb') as f: while True: #每次读取2048个字节数据 data = f.read(2048) if not data: brea #计算md5值 md5_value.update(data) return md5_value.hexdigest() 示例:密码加密 本例我一个登录验证的装饰器 #!

python(6)- hashlib模块

加密算法: SHA1,SHA224, SHA256, SHA384, SHA512 , MD5 1. md5 import hashlib m = hashlib.md5() m.update(b"Hello") #加密 m.update(b"It's me") #再加密一句 print(m.digest()) #二进制 print(m.hexdigest()) #16进制 2.SHA1 #SHA1 m = hashlib.sha1() m.update(b&quo

Python基础-hashlib模块

加密算法介绍 HASH Hash,一般翻译做"散列",也有直接音译为"哈希"的,就是把任意长度的输入(又叫做预映射,pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值.这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,而不可能从散列值来唯一的确定输入值. 简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数. HASH主要用于信息安全领域中加密算法,他把一些不同长度的信息转化成杂

python加密---hashlib模块

1.hash是什么 hash是一种算法,支持openssl 库提供的所有算法,包括md5, sha1, sha224, sha256, sha384, sha512,使用非常简单.方便.md5经常用来做用户密码的存储.而sha1则经常用作数字签名. 2.md5的三个特点 (1).内容相同则hash运算结果相同,内容稍微 改变hash值则变, (2).不可逆推. (3).在用相同算法计算时,无论数据多长,得到的hash值长度固定

Python:hashlib加密模块,flask模块写登录接口

hashlib模块 主要用于加密相关的操作,(比如说加密字符串)在python3的版本里,代替了md5和sha模块,主要提供 sha1, sha224, sha256, sha384, sha512 ,md5 这些加密方式 import  hashlib m = hashlib.md5()   #用md5加密的方式(md5加密后无法解密),创建一个md5的对象 m.update(b"Hello")  #b代表二进制字节bytes,把字符串hello转成字节,然后加密:用b给一个变量转换

md5模块(Python内置模块)和hashlib模块

转自https://my.oschina.net/duhaizhang/blog/67214 MD5模块用于产生消息摘要,康用来判断文件是否相同. python的md5模块使用非常简单,包括以下几个函数: md5.new([arg]) 返回一个md5对象,如果给出参数,则相当于调用了update(arg) md5.md5(s) 返回字符串s的md5 md5.updte(arg) 用string参数arg更新md5对象.即将要计算arg的消息摘要值. md5.digest() 返回16字节的摘要,

Python学习笔记——基础篇【第六周】——hashlib模块

常用模块之hashlib模块 用于加密相关的操作,3.x里代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法 import md5 hash = md5.new() hash.update('admin') print hash.hexdigest() MD5-废弃 import sha hash = sha.new() hash.update('admin') print hash.hexdigest() sha-废