您的位置:首页 > 编程语言 > Python开发

Python hashlib模块

2011-11-24 19:54 726 查看
hashlib是个专门提供hash算法的库,现在里面包括md5, sha1, sha224, sha256, sha384, sha512,使用非常简单、方便。 md5经常用来做用户密码的存储。而sha1则经常用作数字签名。

In [1]: import hashlib

In [2]: a = "a test string"

In [3]: print hashlib.md5(a).hexdigest()

b1a4cf30d3f4095f0a7d2a6676bcae77

In [4]: print hashlib.sha1(a).hexdigest()

2da75da5c85478df42df0f917700241ed282f599

In [5]: print hashlib.sha224(a).hexdigest()

fb29c0daf4a995d2caad4cc5150a6977f871ac34c1c9c97d740d90d0

In [6]: print hashlib.sha256(a).hexdigest()

b830543dc5d1466110538736d35c37cc61d32076a69de65c42913dfbb1961f46

In [7]: print hashlib.sha384(a).hexdigest()

1b7c9d326961a90d6fe5e168b7339852a6238af953e5cad5501d140167bdfe8ebd82d7df5f7915ebad3e2f89d977357f

In [8]: print hashlib.sha512(a).hexdigest()

fd308aadbf52384412c4ba3e2dfe3551e0faa2e7455898dae04fda4f238569e3889c56cbd4d120cf69f81a5f06456f327c19100eaed2e590888342f1ce3e0261

对以下代码的说明:

1.首先从python直接导入hashlib模块

2.调用hashlib里的md5()生成一个md5 hash对象

3.生成hash对象后,就可以用update方法对字符串进行md5加密的更新处理

4.继续调用update方法会在前面加密的基础上更新加密

5.加密后的二进制结果

6.十六进制结果

In [11]: m = hashlib.md5()

In [12]: m.update("Nobody inspects")

In [13]: m.digest()

Out[13]: '>\xf7)\xcc\xf0\xccV\x07\x9c\xa5F\xd5\x80\x83\xdc\x12'

In [14]: m.hexdigest()

Out[14]: '3ef729ccf0cc56079ca546d58083dc12'

In [15]: m.update(" the spammish repetition")

In [16]: m.hexdigest()

Out[16]: 'bb649c83dd1ea5c9d9dec9a18df0ffe9'

In [17]: m.digest()

Out[17]: '\xbbd\x9c\x83\xdd\x1e\xa5\xc9\xd9\xde\xc9\xa1\x8d\xf0\xff\xe9'

如果只需对一条字符串进行加密处理,也可以用一条语句的方式:

In [19]: print hashlib.new("md5", "Nobody inspects the spammish repetition").hexdigest()

bb649c83dd1ea5c9d9dec9a18df0ffe9
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: