python加密模組 hashlib模組

2021-09-20 22:36:50 字數 2409 閱讀 9859

用於加密相關的操作,3.x裡代替了md5模組和sha模組,主要提供sha1,sha224,sha256,sha384,sha512,md5演算法

(sha比md5 更複雜、md5 不能反解)

具體使用方法:

#匯入模組

import hashlib

生成乙個加密的物件並複製給變數

m = hashlib.md5()

給物件輸入加密bytes字元型別

m.update(b"hello")

m.update(b"it's me")

列印加密後的md5值,輸出二進位制hash

print(m.digest())

列印加密後的md5值,輸出十六進製制格式hash

print(m.hexdigest())

檢視十六進製制格式hash的長度為32

print(len(m.hexdigest()))

以下是六種加密方法一一示例:

# sha1加密

sha = hashlib.sha1()

sha.update("管理員".encode(encoding="utf-8"))

print(sha.hexdigest())

# sha224加密

sha224 = hashlib.sha224()

sha224.update(b"admin")

print(sha224.hexdigest())

# sha256加密

sha256 = hashlib.sha256()

sha256.update(b"admin")

print(sha256.hexdigest())

# sha384加密

sha384 = hashlib.sha384()

sha384.update(b"admin")

print(sha384.hexdigest())

# sha512加密

sha512 = hashlib.sha512()

sha512.update(b"admin")

print(sha512.hexdigest())

# md5加密

md5 = hashlib.md5()

md5.update(b"admin")

print(md5.hexdigest())

python還有乙個hmac模組,它內部對我們建立key和內容 再進行處理 再加密!

雜湊訊息鑑別碼,簡稱hmac,是一種基於訊息鑑別碼mac(message authentication code)的鑑別機制。使用hmac時,訊息通訊的雙方,通過驗證訊息中加入的鑑別金鑰k來鑑別訊息的真偽;

一般用於網路通訊中訊息加密,前提是雙方先要約定好key,就像接頭暗號一樣,然後訊息傳送,用key把訊息加密,接收方用key + 訊息明文再加密,拿加密後的值 跟 傳送者的相對比是否相等,這樣就能驗證訊息的真實性,及傳送者的合法性了。

演算法表示:

演算法公式 : hmac(k,m)=h(k⊕opad∣h(k⊕ipad∣m))[1]

h 代表所採用的hash演算法(如sha-256)

k 代表認證密碼

ko 代表hash演算法的密文

m 代表乙個訊息輸入

b 代表h中所處理的塊大小,這個大小是處理塊大小,而不是輸出hash的大小

如,sha-1和sha-256 b = 64

sha-384和sha-512 b = 128

l 表示hash的大小

opad 用0x5c重複b次

ipad 用0x36重複b次

apad 用0x878fe1f3重複(l/4)次

認證流程

(1) 先由客戶端向伺服器發出乙個驗證請求。

(2) 伺服器接到此請求後生成乙個隨機數並通過網路傳輸給客戶端(此為挑戰)。

(3) 客戶端將收到的隨機數提供給epass,由epass使用該隨機數與儲存在epass中的金鑰進行hmac-md5運算並得到乙個結果作為認證證據傳給伺服器(此為響應)。

(4) 與此同時,伺服器也使用該隨機數與儲存在伺服器資料庫中的該客戶金鑰進行hmac-md5運算,如果伺服器的運算結果與客戶端傳回的響應結果相同,則認為客戶端是乙個合法使用者。

具體使用方法:

#匯入模組

import

#設定密碼和訊息 進行加密

new"哈哈哈"

"utf-8"

"你好"

"utf-8"

#列印加密後的字元

print

//

python學習筆記5 加密模組hashlib

import hashlib md5 ybm pwd yuanbapqingsdfs234ff234hf f m hashlib.md5 bytes ybq ybm pwd.encode 把字串轉成bytes型別 m.update bytes ybq 加密,不能字串,只能傳bytes型別,二進位制 ...

Python 加密模組

這裡介紹hashlib模組。2 加密 hashlib模組有很多種加密方法,如hashlib.sha224 hashlib.blake2b 等,這裡以md5加密為例。加密時,不能直接對字串進行加密,需要先將字串轉化為bytes型別,用str.encode 下面是乙個完整的加密過程。將上述功能寫成下列函...

python的加密模組

使用 pycrypto 模組 使用aes的乙個範例 usr bin env python coding utf 8 from crypto.cipher import aes import struct import hashlib import random def generagekey imp...