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上面這段字串就是 data 轉換後的md5值。fdedaafb043d41ff06b6ef249ef53be9
2 32
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(windows 使用者 要使用 'rb'方式開啟檔案)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)
大家可以用下面這段**驗證一下:
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...