首先介紹一下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...