python的md5和sha1加密

2021-07-13 20:35:52 字數 1561 閱讀 4049

首先介紹一下md5和sha1

md5

md5的全稱是message-digestalgorithm 5(資訊-摘要演算法)。128位長度。目前md5是一種不可逆演算法。

具有很高的安全性。它對應任何字串都可以加密成一段唯一的固定長度的**。

sha1

sha1的全稱是secure hashalgorithm(安全雜湊演算法) 。sha1基於md5,加密後的資料長度更長,

它對長度小於264的輸入,產生長度為160bit的雜湊值。比md5多32位。

因此,比md5更加安全,但sha1的運算速度就比md5要慢了。

python 中的用法:

python 內建的 hashlib 模組就包括了 md5 和 sha1 演算法。而且使用起來也極為方便

example of md5:

import hashlib

data = '860832037886970'

hash_md5 = hashlib.md5(data)

hash_md5.hexdigest()

會輸出:

'b446e9c6fba8973839e3c547cea82a3e'

上面這段字串就是 data 轉換後的md5值。

md5不僅僅是上面這個例子這樣用來處理字串,還有更廣泛的用途:

加密**註冊使用者的密碼。(但去年的各大**密碼洩漏事件確實讓人蛋疼……)

key-value資料庫中使用md5值作為key。

sha1的使用與md5類似,就像下面這樣,所以不再講解sha1:

import hashlib

hashlib.sha1('this is a sha1test!').hexdigest()

處理大檔案:

上面說過可以用md5來檢測兩個檔案是否相同,但想想,如果是兩個很大的檔案,擔心記憶體不夠用,這時怎麼辦?

這就要使用 update 方法了。**如下:

import hashlib

def get_file_md5(f):

m= hashlib.md5()

while true:

data = f.read(10240)

if not data:

break

m.update(data)

return m.hexdigest()

with open(your_file, 'r') as f:

file_md5 = get_file_md5(f)

import hashlib

x = hashlib.md5()

x.update('hello, ')

x.update('python')

x.hexdigest()

hashlib.md5('hello, python').hexdigest()

python的md5和sha1加密

md5 md5的全稱是message digest algorithm 5 資訊 摘要演算法 輸出長度是32。目前md5是一種不可逆演算法。具有很高的安全性。它對應 任何字串都可以加密成一段唯一的固定長度的 sha1 sha1的全稱是secure hash algorithm 安全雜湊演算法 sha...

python的md5和sha1加密

md5 md5的全稱是message digest algorithm 5 資訊 摘要演算法 128位長度。目前md5是一種不可逆演算法。具有很高的安全性。它對應 任何字串都可以加密成一段唯一的固定長度的 sha1 sha1的全稱是secure hash algorithm 安全雜湊演算法 sha1...

python的md5和sha1加密

md5 md5的全稱是message digest algorithm 5 資訊 摘要演算法 128位長度。目前md5是一種不可逆演算法。具有很高的安全性。它對應 任何字串都可以加密成一段唯一的固定長度的 sha1 sha1的全稱是secure hash algorithm 安全雜湊演算法 sha1...