首先介紹一下md5和sha1
md5
md5的全稱是message-digest algorithm 5(資訊-摘要演算法)。128位長度。目前md5是一種不可逆演算法。
具有很高的安全性。它對應任何字串都可以加密成一段唯一的固定長度的**。
sha1
sha1的全稱是secure hash algorithm(安全雜湊演算法) 。sha1基於md5,加密後的資料長度更長,
它對長度小於264的輸入,產生長度為160bit的雜湊值。比md5多32位。
因此,比md5更加安全,但sha1的運算速度就比md5要慢了。
python 中的用法:
python 內建的 hashlib 模組就包括了 md5 和 sha1 演算法。而且使用起來也極為方便
example of md5:
1 import hashlib
2 3 data = 'this a md5 test!'
4 hash_md5 = hashlib.md5(data)
5 6 hash_md5.hexdigest()
會輸出:
1 '0a2c0b988863f08471067903d8737962'
上面這段字串就是 data 轉換後的md5值。
md5不僅僅是上面這個例子這樣用來處理字串,還有更廣泛的用途:
sha1的使用與md5類似,就像下面這樣,所以不再講解sha1:
import hashlib
hashlib.sha1('this is a sha1 test!').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)
(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 資訊 摘要演算法 輸出長度是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...