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
 

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