Python(1)——hashlib&hmac

一、hashlib

1、hashlib是个专门提供hash算法的库,代替了md5模块和sha模块,主要提供SHA1,SHA224,SHA256,SHA384,SHA512,MD5算法。

2、hashlib是涉及安全散列和消息摘要,提供多个不同的加密算法接口
3、在python3中已经废弃了md5和sha模块。
4、摘要算法又称为哈希算法,散列算法。它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示)用于加密相关的操作。

1. md5加密

import hashlib
hash = hashlib.md5()
hash.update('hashlib'.encode('utf-8'))
print(hash.hexdigest())

结果:

011b172c1b0410b994a7324a2406b262

2. sha1加密

import hashlib
hash = hashlib.sha1()
hash.update('hashlib'.encode('utf-8'))
print(hash.hexdigest())

结果:

7616ac97eb53486b908d0e024ea30fa4e321fa1b

3. sha256加密

import hashlib
hash = hashlib.sha256()
hash.update('hashlib'.encode('utf-8'))
print(hash.hexdigest())

结果:

2dfc7fde14154f53fa303391a439b00ec6284c2831b9a465b83f7372cb962cc9

4. sha384加密

import hashlib
hash = hashlib.sha384()
hash.update('hashlib'.encode('utf-8'))
print(hash.hexdigest())

结果:

d850c09e36b98a1ea123241cce4a73d6b6b461a6c7a83829267a55070c3947e4abb154dbb17e3f4b1c2ee5aab471a2b3

5. sha512加密

import hashlib
hash = hashlib.sha512()
hash.update('hashlib'.encode('utf-8'))
print(hash.hexdigest())

结果:

43483f7a42fa349e421a072a1af3f578be6b194122103a87cc2e2352503b1025b047f5f791a3ad0895a642e9d84a0707a0a12a302d9bb7e5d91ac2027e748ad1


6. ‘加盐’加密

以上加密算法虽然很厉害,但仍然存在缺陷,通过撞库可以反解。所以必要对加密算法中添加自定义key(统称为“盐”)再来做加密。

import hashlib
hash = hashlib.md5('python'.encode('utf-8'))
hash.update('hashlib'.encode('utf-8'))
print(hash.hexdigest())

结果:

377f64c42b532c45aeb9aefaab0b81c4


二、hmac

hmac内部对我们创建的key和内容进行处理后在加密

先把数据存储到字典中,然后再进行加密

import hmac
h = hmac.new('python'.encode('utf-8'))
h.update('helloworld'.encode('utf-8'))
print(h.hexdigest())

结果:

b3b867248bb4cace835b59562c39fd55
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章