python - 常用模块 - hashlib模块

python3中的hashlib库主要是为大家提供了python中常用的加密方式

其中SHA1官方不再支持,不建议用。md5()的安全性不如SHA2,所以推荐使用SHA2做加密算法

hashlib里面的加密方式都是单向加密,没有反加密方式,所以在使用时,比如密码验证,在数据库里面存储的是加密后的值,再把用户输入的密码进行相同加密方式,再对比

hashlib里面主要提供 md5, sha1, sha224, sha256, sha384, sha512 算法
各种加密算法在使用上,只是声明加密方式的时候名字不同,其他操作完全一样

hashlib模块:

 1 import hashlib
 2
 3 print(‘‘‘
 4      =============cmd5加密============
 5     ‘‘‘)
 6
 7 m = hashlib.md5()   #声明用什么加密方式
 8 m.update(b"Hello")
 9 m.update(b"It‘s me")          #对数据加密用uodate()  注意要把被加密数据转为二进制形式
10 print(‘cmd5加密结果:‘,m.hexdigest())
11
12 print(‘‘‘
13      =============sha224加密============
14     ‘‘‘)
15
16 m = hashlib.sha224()   #声明用什么加密方式
17 m.update(b"Hello")
18 m.update(b"It‘s me")
19 print(‘sha224加密结果:‘,m.hexdigest())
20
21
22 print(‘‘‘
23      =============sha256加密============
24     ‘‘‘)
25
26 m = hashlib.sha256()   #声明用什么加密方式
27 m.update(b"Hello")
28 m.update(b"It‘s me")
29 print(‘sha256加密结果:‘,m.hexdigest())
30
31 print(‘‘‘
32      =============sha384加密============
33     ‘‘‘)
34
35 m = hashlib.sha384()   #声明用什么加密方式
36 m.update(b"Hello")
37 m.update(b"It‘s me")
38 print(‘sha384加密结果:‘,m.hexdigest())
39
40 print(‘‘‘
41      =============sha512加密============
42     ‘‘‘)
43
44 m = hashlib.sha512()   #声明用什么加密方式
45 m.update(b"Hello")
46 m.update(b"It‘s me")
47 print(‘sha512加密结果:‘,m.hexdigest())
48
49 ‘‘‘
50
51      =============cmd5加密============
52
53 cmd5加密结果: 5ddeb47b2f925ad0bf249c52e342728a
54
55      =============sha224加密============
56
57 sha224加密结果: 56baaebedb486c687432e20c1675dd406146f5c17abf107ab018eaf5
58
59      =============sha256加密============
60
61 sha256加密结果: 54e3c292b4668c9697593680b71f15cfcc634031dc82349a7fd5ae1c544463ef
62
63      =============sha384加密============
64
65 sha384加密结果: 5346981d17ebdf271f45509861bcf6d0757f6a31c3fb58feb8b354b6b60810dcbb4d74dc937ab258676f8eae0324118f
66
67      =============sha512加密============
68
69 sha512加密结果: 1aa9c253210096bee3533370dacb3960f6a995a7d1e993c54d32d3ec43e496b3558ac05f87ca6ac9b06036e03f84a7c0ffebd3d14589385c7fd0b096cea967c0
70
71
72 ‘‘‘

hmac模块:

  还有一个基于hashlib模块的加密模块-- hmac 模块

  hmac模块是在hashlib模块之上,再在它内部对我们创建 key 和 内容 再进行处理然后再加密散列消息鉴别码,简称HMAC,是一种基于消息鉴别码MAC(Message Authentication Code)的鉴别机制。使用HMAC时,消息通讯的双方,通过验证消息中加入的鉴别密钥K来鉴别消息的真伪;

  一般用于网络通信中消息加密,前提是双方先要约定好key,就像接头暗号一样,然后用key把消息加密,接收方用 (key + 消息明文)再加密,拿加密后的值 跟 发送者

的相对比是否相等,这样就能验证消息的真实性,及发送者的合法性了

  hmac模块用法:

1 import hmac
2
3 k = hmac.new(b‘xtsec‘)   #创建一个自定义key
4 k.update(b‘hello world!‘)   #对消息进行加密,可以分开加密,但是要注意空格也要算在内 eg:k.update(b‘hello ‘)   k.update(b‘world‘) 与前面一样
5 print(k.hexdigest())

结果: e9814092d76de9f4502a39b172a848b2
时间: 2024-08-27 08:41:00

python - 常用模块 - hashlib模块的相关文章

python模块: hashlib模块, configparse模块, logging模块

一. hashlib模块 Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等. 摘要算法又称哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示). 摘要算法就是通过摘要函数f()对任意长度的数据data计算出固定长度的摘要digest,目的是为了发现原始数据是否被人篡改过.摘要算法之所以能指出数据是否被篡改过,就是因为摘要函数是一个单向函数,计算f(data)很容易,但通过digest反推data却非常困难.而且,对原

25.Python序列化模块,hashlib模块, configparser模块,logging模块,异常处理

一.序列化模块 什么叫序列化——将原本的字典.列表等内容转换成一个字符串的过程就叫做序列化. 比如,我们在python代码中计算的一个数据需要给另外一段程序使用,那我们怎么给?现在我们能想到的方法就是存在文件里,然后另一个python程序再从文件里读出来.但是我们都知道,对于文件来说是没有字典这个概念的,所以我们只能将数据转换成字典放到文件中.你一定会问,将字典转换成一个字符串很简单,就是str(dic)就可以办到了,为什么我们还要学习序列化模块呢?没错序列化的过程就是从dic 变成str(di

python学习-59 hashlib模块

hashlib模块 用于加密相关的操作,3.x里代替了md5模块和sha模块 加密功能 import hashlib obj = hashlib.md5() # 如果在md5里加上自己设置的参数,别的解密软件就不容易解密了,例如:hashlib.md5('asdfg'.encode('utff-8')) obj.update('hello'.encode('utf-8')) print(obj.hexdigest()) 运行结果(将hello转换成一个密文): 5d41402abc4b2a76b

python常用命令—查看模块所在位置

环境:ipython3 交互式解释器 语法: import 模块名 模块名.__file__ 功能: 查看模块的所在位置 例: 原文地址:https://www.cnblogs.com/summer1019/p/10348689.html

模块 hashlib模块

hashlib模块  提供摘要算法 主要做对比,比较两段代码是否完全一致 不管算法多么不同,摘要功能始终不变, 对同一个字符串进项同一算法摘要得到的值始终不变 MD5值的生成 import hashlib sha1 = hashlib.md5() #一定加括号 sha1.update(bytes('alex3421',encoding='utf-8')) print(sha.hexdigest()) sha 算法随着算法复杂程度的增加,时间空间都会提高 密码的密文存储 文件一致性验证(不需要加盐

包/logging模块/hashlib模块/openpyxl模块/深浅拷贝

一.包 1.什么是包 包就是一系列模块文件的结合体,表示形式是一种文件夹,该文件夹内部通常有一个__init__.py文件. 2.为什么要用包 当一个模块功能太多的时候不方便进行管理,我们用包来进行管理 3.包的使用 首次发导入包发生的几件事: 1.先产生一个执行文件的名称空间 2.创建包下面的__init__文件的名称空间 3.执行包下面的__init__.py文件中的代码,将产生的名字放在包下面的__Init__,py文件名称空间中 4.在执行文件中拿到 一个指向包下面的__Init__文件

python常用50个模块

Python具有强大的扩展能力,我列出了50个很棒的Python模块,包含几乎所有的需要:比如Databases,GUIs,Images, Sound, OS interaction, Web,以及其他.推荐收藏. Graphical interface wxPython http://wxpython.org   Graphical interface pyGtk http://www.pygtk.org   Graphical interface pyQT http://www.riverb

Python常用内建模块

collections: collections是Python内建的一个集合模块,提供了许多有用的集合类. namedtuple  它用来创建一个自定义的tuple对象,并且规定了tuple元素的个数,并可以用属性而不是索引来引用tuple的某个元素 deque  deque是为了高效实现插入和删除操作的双向列表,适合用于队列和栈 defaultdict  Key不存在时返回默认值,不会报错 OrderedDict  保持Key的顺序 Counter  一个简单的计数器

常用模块 - hashlib模块

一.简介 Python的hashlib提供了常见的摘要算法,如MD5.SHA1.SHA224.SHA256.SHA384.SHA512等算法. 什么是摘要算法呢?摘要算法又称哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示). 举个例子,你写了一篇文章,内容是一个字符串“how to use python hashlib – by mayi”,并附上这篇文章的摘要是“75b850b26f4e75b1ad3db76a255065f2”.如果