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. >>> m = hashlib.md5()
  3. >>> m.update("Nobody inspects")
  4. >>> m.update(" the spammish repetition")
  5. >>> m.digest()
  6. ‘\xbbd\x9c\x83\xdd\x1e\xa5\xc9\xd9\xde\xc9\xa1\x8d\xf0\xff\xe9‘
  7. >>> m.hexdigest()
  8. ‘bb649c83dd1ea5c9d9dec9a18df0ffe9‘

对以上代码的说明:

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

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

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

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

5.加密后的二进制结果

6.十六进制结果

时间: 2024-09-30 13:00:54

md5模块(Python内置模块)和hashlib模块的相关文章

python 学习二十五天(python内置模块之序列化模块)

今日主要内容 1.python内置模块-序列化模块 python中的序列化模块 json 所有的编程语言都通用的序列化格式....它支持的数据类型非常有限 数字 字符串 列表 字典 pickle 只能在python语言的程序之间传递数据用的..pickle支持python中所有的数据类型 shelve python3.* 之后才有的 2.摘要模块---hashlib 3.一道经典面试题 第一.python内置模块---序列化 ***所有的导入模块都需要把import放在文件首位 什么叫序列化 能

Python内置模块和第三方模块

1.Python内置模块和第三方模块 内置模块: Python中,安装好了Python后,本身就带有的库,就叫做Python的内置的库. 内置模块,也被称为Python的标准库. Python 2.x的在线库函数查询,可以去这里: The Python Standard Library 第三方库: 而非Python本身自带的库,就是所谓的第三方的库: 2.模块==库 模块,module,也常被叫做 库,Lib,Library. 3.常见的内置模块和第三方模块 Python中,一些常见的内置模块:

python模块 os&sys&subprocess&hashlib模块

os模块 # os模块可根据带不带path分为两类 # 不带path print(os.getcwd()) # 得到当前工作目录 print(os.name) # 指定你正在使用的操作系统,windows为nt,linux为“posix" os.shell() # 运行shell命令 print(os.environ) # 返回操作系统所有的环境变量 print(os.getenv("home")) # 读取指定环境变量的值 os.environ.setdefault(&qu

Python之常用模块(五)hashlib模块与collections模块

5.8 hashlib模块 hashlib模块简介:此模块有人称为摘要算法,也叫做加密算法,或者是哈希算法,散列算法等等,主要用于密码得加密.文件一致性校验 加密方式有:MD5.sha1.sha25.sha512数字越大,加密的方法越复杂,安全性越高,但是效率就会越慢. 普通加密 import hashlib md5 = hashlib.md5() md5.update('123456'.encode('utf-8')) # 必须是bytes类型才能够进行加密 print(md5.hexdige

python学习-59 hashlib模块

hashlib模块 用于加密相关的操作,3.x里代替了md5模块和sha模块 加密功能 import hashlib obj = hashlib.md5() # 如果在md5里加上自己设置的参数,别的解密软件就不容易解密了,例如:hashlib.md5('asdfg'.encode('utff-8')) obj.update('hello'.encode('utf-8')) print(obj.hexdigest()) 运行结果(将hello转换成一个密文): 5d41402abc4b2a76b

PYTHON学习第二模块 python内置模块介绍

1 >>> import time 2 >>> time.time() 3 1491064723.808669 4 >>> # time.time()返回当前时间的时间戳timestamp(定义为从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数)的方法,无参数 5 >>> time.asctime() 6 'Sun Apr 2 00:39:32 2017' 7 >>> # time.asctim

Python 学习笔记- hashlib模块

Python里面可以通过hashlib来加密文件.hashlib可以支持多种加密,以最常见的md5为例,我们可以用来加密用户的输入密码,然后保存在数据库里. 例1 加密字符串 import hashlib obj = hashlib.md5(bytes('1111', encoding='utf-8')) obj=hashlib.md5() obj.update(bytes('123', encoding='utf8')) obj.update(bytes('456',encoding='utf

Python内置模块之序列化模块

序列化模块 json dumps loads dump load pickle dumps loads dump load shelve json 1: dumps/loads import json # 导入json模块 dic = {'name':'wangys','age':18,'sex':'male'} # 定义一个字典 str_dir = json.dumps(dic) # 将字典序列化 print(str_dir,type(str_dir)) new_dic = json.load

python成长之路第三篇(4)_作用域,递归,模块,内置模块(os,ConfigParser,hashlib),with文件操作

打个广告欢迎加入linux,python资源分享群群号:478616847 目录: 1.作用域 2.递归 3.模块介绍 4.内置模块-OS 5.内置模块-ConfigParser 6.内置模块-hashlib 7.with文件操作 代码执行环境默认为3.5.1 一.作用域 (1)什么是作用域,官方来说作用域就是就是有不同的命名空间,就像下面的代码一样,a=1它的作用域是全局的,也在全局的命名空间当中,当函数 action中的a=2它就在局部的作用域中,也在局部的命名空间当中. a = 1def