淺嘗hashlib

1.是啥?

hashlib,故名思意,python的hash庫,其中實現(xiàn)了多種hash方法,有md5,sha1,sha256等hash方法,可以用于加密。思想最主要的是把一段字符串轉(zhuǎn)換成相對較短的數(shù)值。

2.咋用?

hashlib封裝了不同的hash方法類,對其中一個方法初始化便會生成一個hash方法的對象。

import hashlib
origin_str = 'python'
md5 = hashlib.md5()
md5.update(origin_str.encode())#需將origin_str編碼成bytes進行hash
md5.digest()#返回bytes類型的字符串的摘要,也就是hash值
#out b'#\xee\xebCG\xbd\xd2k\xfck~\xe9\xa3\xb7U\xdd'

但是這樣二進制的hash值不是我們想要處理的形式

hash_value = int.from_bytes(md5.digest(),byteorder="big")
#out 47763518201550007491658205975564211677

此時再對這樣的數(shù)值操作即可

bit_count=20
hash_code = hash_value%2**bit_count
#out 480733

3. 原理

掰扯掰扯其中的一些方法的具體實現(xiàn).我先看看再說。

4. Tips

如果用到hash對象的update方法的話,相同原文會每次生成不同的hash_value,若要相同字符串每次生成同樣的hash_value的話,將原文作為參數(shù)進行初始化即可。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容