MD5 SHA1 CRC32

md5:

import hashlib

md5 = hashlib.md5()
md5.update(bytes('http://www.baidu.com',encoding="utf-8"))
result = md5.hexdigest()

  

SHA1:

import hashlib

sha1 = hashlib.sha1()
sha1.update(bytes('how to use sha1 in ',encoding="utf-8"))
result = sha1.hexdigest()

  

CRC32:

from zlib import crc32


result = crc32(b'http://www.baidu.com')

  

其中SHA-1與MD5 的最大區別在於其摘要比MD5 摘要長 32 比特。對於強行攻擊,產生任何一個報文使之摘要等於給定報文摘要的難度:MD5 是2128 數量級的操做,SHA-1 是2160 數量級的操做。但因爲SHA-1 的循環步驟比MD5 多(80:64)且要處理的緩存大(160 比特:128 比特),SHA-1 的運行速度比MD5 慢。python

雖然在數據表很是大的時候CRC32會出現大量hash衝突,可是能提供更好的性能,在mysql性能優化能起到很好的做用。查詢語句能夠這樣來寫:mysql

select id from table where url_crc=%s and url=%s;
相關文章
相關標籤/搜索