专栏首页python3python模块——hashlib

python模块——hashlib

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

>>> 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对象有以下常用方法:

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

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

    >>> 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'

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

    >>> 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内部块的大小

    >>> import hashlib
    >>> m.update("Nobody inspects")
    >>> m.digest_size
    16L
    >>> m.block_size
    64L
    >>>

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python模块之hashlib

    hashlib模块实现了多种安全哈希和信息摘要算法的通用接口,包括FIPS中定义的SHA1, SHA224, SHA256, SHA384, SHA512以及R...

    py3study
  • python hashlib模块学习

    1.干嘛用的: 对字符进行加密,其实就是一个自定义的字符编码表,我们原来接触的是计算机语言0和1然后转化成字符,而hashlib就是把字符转成另一种字符,在生活...

    py3study
  • python3学习之md5加密

    py3study
  • python模块之hashlib

    hashlib模块实现了多种安全哈希和信息摘要算法的通用接口,包括FIPS中定义的SHA1, SHA224, SHA256, SHA384, SHA512以及R...

    py3study
  • 高通量计算框架HTCondor(一)——概述

    HTCondor是威斯康星大学麦迪逊分校构建的分布式计算软件和相关技术,用来处理高通量计算(High Throughput Computing )的相关问题。高...

    charlee44
  • 用于预测恶劣天气的深度学习

    尽管数值天气预报(NWP)已经取得了几十年的努力和进步,但极端天气事件仍然具有挑战性。现代天气预报使用大气和海洋的数学模型来根据当前的天气状况预测天气。即使现在...

    GPUS Lady
  • 【今日问题】变量未初始化引起的崩溃

    昨天写的今日问题,有小伙伴给我反馈,觉得挺有用,小编今天继续给小伙伴们总结遇到的常见问题 一、初学者经常由于没有养成良好的编程习惯,未初始化变量会引起那些问题 ...

    程序员互动联盟
  • 2-4 另类堆栈 (20 分)

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

    韩旭051
  • 大会 | ECCV 2018 德国慕尼黑召开,来份 tutorial 预热

    AI 科技评论消息,计算机视觉欧洲大会(European Conference on Computer Vision,ECCV)于 9 月 8 -14 日在德国...

    AI科技评论
  • java面试题:谈谈你对volatile的理解

      最近打算整理下Java面试中频率比较高,相对比较难的一些面试题,感兴趣的小伙伴可以关注下。

    用户4919348

扫码关注云+社区

领取腾讯云代金券