zoukankan      html  css  js  c++  java
  • md5模块(Python内置模块)和hashlib模块

    转自https://my.oschina.net/duhaizhang/blog/67214

    MD5模块用于产生消息摘要,康用来判断文件是否相同。

    python的md5模块使用非常简单,包括以下几个函数:

    • md5.new([arg])
      • 返回一个md5对象,如果给出参数,则相当于调用了update(arg)
    • md5.md5(s)
      • 返回字符串s的md5
    • md5.updte(arg)
      • 用string参数arg更新md5对象。即将要计算arg的消息摘要值。
    • md5.digest()
      • 返回16字节的摘要,由传给update的string生成,摘要没有ascii字符
    • md5.hexdigest()
      • 以16进制的形式返回摘要,32位

    注意:如果m.update(a)之后在 m.update(b),那么就相当于m.update(a+b)

    步骤:

    01、导入md5模块

    import md5

    02、得到一个新的md5对象

    m = md5.new()

    03、用一个字符串更新md5对象

    s = "hahaha"
    m.update(s)

    04、得到该字符串(这里是s)的摘要

    print m.degest()

    05、或者得到16进制的摘要(这个就是我们想要的)

    print m.hexdigest()

    这会得到一个字符串,长度为32位


    要计算MD5值,不仅可以使用md5模块,还可以使用hashlib模块。hashlib是个专门提供hash算法的库,现在里面包括md5, sha1, sha224, sha256, sha384, sha512,使用非常简单、方便。md5经常用来做用户密码的存储。而sha1则经常用作数字签名。

    下面主要记录下其中的md5加密方式

    [python]  view plain copy print ?
    1. >>> import hashlib  
    2.   
    3. >>> m = hashlib.md5()  
    4.   
    5. >>> m.update("Nobody inspects")  
    6.   
    7. >>> m.update(" the spammish repetition")  
    8.   
    9. >>> m.digest()  
    10.   
    11. 'xbbdx9cx83xddx1exa5xc9xd9xdexc9xa1x8dxf0xffxe9'  
    12.   
    13. >>> m.hexdigest()  
    14.   
    15. 'bb649c83dd1ea5c9d9dec9a18df0ffe9'  

     

    对以上代码的说明:

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

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

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

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

    5.加密后的二进制结果

    6.十六进制结果

  • 相关阅读:
    Java框架-mybatis02基本的crud操作
    Java框架-mybatis01查询单个数据
    MAC常用命令
    性能测试工具Jmeter13-Jmeter跨线程组调用token
    性能测试工具Jmeter12-Jmeter连接配置带跳板机(SSH)的mysql服务器
    Java基础29-子父类中的成员变量
    Java基础28-继承
    Java基础27-单例设计模式
    启动项目时报spawn cmd ENOENT
    npm安装教程
  • 原文地址:https://www.cnblogs.com/WangAoBo/p/6921865.html
Copyright © 2011-2022 走看看