前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python模块——hashlib

python模块——hashlib

作者头像
py3study
发布2020-01-07 19:22:25
4350
发布2020-01-07 19:22:25
举报
文章被收录于专栏:python3python3

hashlib模块是对许多hash函数的一个公共接口 new(name, string = '')    执行给定的hash函数来返回一个新的hash对象,使用给定的字符串数据初始化hash对象。如:

代码语言:javascript
复制
>>> import hashlib
>>> hashlib.new('md5', string='abc').hexdigest()    #hexdigest() 使加密后的结果以十六进制显示
'900150983cd24fb0d6963f7d28e17f72'

一些别的hash函数可用来代替new(),并且速度比new()函数快的多,常用的函数有: md5(), sha1(), sha224(), sha356(), sha384(), sha512() 提示:如果要用adler31()和crc32 hash函数,它们在zlib模块中可用。明智的选择hash函数,一些常见的错误如sha384和sha512在32位的平台上速度有些慢。

hash对象有以下常用方法:

代码语言:javascript
复制
- update(arg):    使用string arg更新hash对象。多次调用update和使用串联的参数一次调用update是等价的
- digest():    返回二进制字符串
- hexdigest():    返回十六进制字符串
- copy():    返回hash对象的一个克隆,这可用于高效的计算共享一个相同初始子字符串的digests字符串。

下面例子,将会得到字符串'Nobody inspects the spammish repetition'的加密结果:

代码语言:javascript
复制
    >>> import hashlib
    >>> m = hashlib.md5()    #创建一个加密对象
    >>> m.update("Nobody inspects")    #更新字符串
    >>> m.update(" the spammish repetition")
    >>> m.digest()    #显示加密后的结果
    '\xbbd\x9c\x83\xdd\x1e\xa5\xc9\xd9\xde\xc9\xa1\x8d\xf0\xff\xe9'

可以将多个函数在一行中使用:

代码语言:javascript
复制
    >>> hashlib.md5("Nobody inspects the spammish repetition").digest()
    '\xbbd\x9c\x83\xdd\x1e\xa5\xc9\xd9\xde\xc9\xa1\x8d\xf0\xff\xe9'

关于对象一些方法:

    object.digest_size    结果hash的大小

    object.block_size    hash内部块的大小

代码语言:javascript
复制
    >>> import hashlib
    >>> m.update("Nobody inspects")
    >>> m.digest_size
    16L
    >>> m.block_size
    64L
    >>>
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-09-15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档