浅尝hashlib

2018-04-09  本文已影响0人  HypotheticalLv

1.是啥?

hashlib,故名思意,python的hash库,其中实现了多种hash方法,有md5,sha1,sha256等hash方法,可以用于加密。思想最主要的是把一段字符串转换成相对较短的数值。

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

此时再对这样的数值操作即可

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

3. 原理

掰扯掰扯其中的一些方法的具体实现.我先看看再说。

4. Tips

如果用到hash对象的update方法的话,相同原文会每次生成不同的hash_value,若要相同字符串每次生成同样的hash_value的话,将原文作为参数进行初始化即可。

上一篇 下一篇

猜你喜欢

热点阅读