python的md5和sha1加密

2021-08-07 18:53:27 字數 1749 閱讀 3589

md5

md5的全稱是message-digest algorithm 5(資訊-摘要演算法)。輸出長度是32。目前md5是一種不可逆演算法。

具有很高的安全性。它對應

任何字串都可以加密成一段唯一的固定長度的**。

sha1

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

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

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

python 中的用法:

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

example of md5:

1

import hashlib

23 data = '

this a md5 test!

'4 hash_md5 = hashlib.md5(data)

56 print hash_md5.hexdigest()

7 print len(hash_md5.hexdigest())

會輸出:

1

fdedaafb043d41ff06b6ef249ef53be9

2 32

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

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

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

import hashlib

print hashlib.sha1('this is a sha1').hexdigest()

print len(hashlib.sha1('this is a sha1 test!').hexdigest())

輸出結果:

f332f09fbfb6263347b5b147f625d679b9c3b87c

40

處理大檔案:

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

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

import hashlib

def get_file_md5(f):

m = hashlib.md5()

while true:

data = f.read(10240)

ifnot data:

break

m.update(data)

return m.hexdigest()

with open(your_file, '

r') as f:

file_md5 = get_file_md5(f)

(windows 使用者 要使用 'rb'方式開啟檔案)

大家可以用下面這段**驗證一下:

import hashlib

x = hashlib.md5()

x.update('

hello,

')x.update('

python

')x.hexdigest()

hashlib.md5('

hello, python

').hexdigest()

這兩次的輸出是一樣的。

sha1 也是一樣的用法。

python的md5和sha1加密

首先介紹一下md5和sha1 md5 md5的全稱是message digestalgorithm 5 資訊 摘要演算法 128位長度。目前md5是一種不可逆演算法。具有很高的安全性。它對應任何字串都可以加密成一段唯一的固定長度的 sha1 sha1的全稱是secure hashalgorithm ...

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...