广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python hashlib模块详情
  • 373
分享到

Python hashlib模块详情

2024-04-02 19:04:59 373人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录1. hashlib 模块概述1.1hashlib 模块特点1.2hashlib 模块使用步骤2. hashlib 工作原理2.1hash 算法特点2.2hash 构造方法2.3

前言:

互联网的时代,我们在网络中传输过程中都是要经过加密的,常见网络数据传输的加密方式有MD5RSA算法。当然,加密算法还有很多中按加密、解密方式不同分为:对称加密非对称加密hash加密。其中MD5算法的基础是使用的hash算法,针对不同安全hash安全算法,python也提一个通用接口hashlib模块。

1. hashlib 模块概述

hashlibPython 内置用于对安全哈希和消息摘要的通用接口模块。hashlib 模块支持提供目前主流hash算法如MD5SHA-1SHA-2SHA-256等通用构造方法,并且返回带有同样接口的hash对象。

1.1hashlib 模块特点

  • 提供主流的hash算法操作,替代md5模块和sha模块
  • 模块调用简单,无需下载安装
  • 主要应用在文本加密场景如用户登录认证

1.2hashlib 模块使用步骤

  • 导入hashlib库import hashlib
  • 建立加密对象
  • 字符串进行加密处理
  • 获取转换成新的N个Bit

2. hashlib 工作原理

hashlib 模块中加密方式是我们常见的hash算法。hash算法又称为散列表(hash table),也叫做哈希表。

2.1hash 算法特点

  • 具有唯一确定性,不同字符串加密后都是不一样的
  • 不可逆性,hash只有加密没有解密过程
  • 散列碰撞,输出和输入值不是一一对应关系

2.2hash 构造方法

直接定址方法

  • 公式一:hash(key) = key
  • 公式二:hash(key) = a*key+b
  • 我们可以查看到直接定址方法具有线性的特点,因此适用在关键字分布连续的情况

数学分析方法

  • 方式:提取关键字中随机性好的数字位,将其拼接为哈希地址
  • 适用场景:关键字已知的情况下,对关键字中每一位进行取值情况分析

除留余数方法

  • 公式hash(key) = key % p
  • 除数采用取余模运算

2.3hash 算法过程

  • hash 函数接收到输入的字符串,首先会先进行预处理-哈希计算-输入摘要
  • 预处理:将字符串进行填充、分割N块,为hash进行初始化
  • 哈希计算:将预处理的数据完成指定算法生成消息摘要
  • 每指定一种hash算法只会生成固定长度的摘要,长度越长的安全性越高

2.4hash 常用算法

MD5

MD5:message-Digest AlGorithm 5 信息-摘要算法5,该算法用于信息完整性进行校验

  • 计算方式:求余、取余、调整长度、进行链接变量循环运算求出结果
  • 用途:主要用于文件校验

SHA-1

SHA:secure Hash Algorithm 安全散列算法1,是一种密码散列算法,SHA-1可以生成摘要消息为40位的16进制即160位(20字节)的散列值

  • 用途:TSL、SSL、PGP、ssh等协议中广泛使用

3. hashlib 属性方法

hashlib 模块相关属性

属性 作用
hashlib.algorithms_guaranteed 保证所有平台上都支持哈希算法的名称
hashlib.algorithms_available 保证平台上运行的Python解释器上可用的hash算法的名称

hashlib 构造对象相关的属性

属性 作用
hash.digest_size 以字节表示哈希对象的大小
hash.block_size 以字节表示哈希算法的内部块大小
hash.name 哈希对象的名称

hashlib 模块相关方法目前可以支持主流hash算法。

方法 作用
hashlib.pbkdf2_hMac(hash_name,passWord,salt,itera,dklen=None) PKCS#5基于密码的秘钥派生函数2,作为HMAC作为伪随机函数
hashlib.scrypt(password,*,salt) 基于密码加密的秘钥派生函数
hashlib.md5() md5加密方式
hashlib.sha1 sha1加密方式
hashlib.sha256 sha256加密方式
hashlib.blake2b () blake2b加密方式
hashlib.blake2s black2s加密方式

hashlib 构造对象相关的方法

方法 作用
hash.update(data) 以字节表示哈希对象
hash.digest() 返回当前已传给update()方法的数据摘要
hash.hexdigest() 以16进制的字符串表示哈希数据值
hash.copy() 将hash对象复制,共享初始数据的摘要

4. 实操

我们学习hashlib模块中对字符串进行hash算法处理,我们来实操一下吧


import hashlib

text_md5 = hashlib.md5()

text_md5.update(bytes("hello juejing",encoding="utf-8"))

print("md5:",text_md5.hexdigest())

text_sha1 = hashlib.sha1()

text_sha1.update(bytes("hello juejing",encoding="utf-8"))

print("sha1:",text_sha1.hexdigest())



text_sha256 = hashlib.sha3_256()

text_sha256.update(bytes("hello juejing",encoding="utf-8"))

print("sha256:",text_sha256.hexdigest())



text_crc32 = hashlib.()

text_sha256.update(bytes("hello juejing",encoding="utf-8"))

print("sha256:",text_sha256.hexdigest())

? 重要说明

  • 添加自定义key与字符串进行组合加密(加盐)
  • 以MD5加密为例如下

加盐写法一:


text_md5 = hashlib.md5(b"key")

text_md5.update("字符串".encode("utf-8")) 

加盐写法二:


key = "字符串"

yan = "字符串2"

text_md5 = hashlib.md5()

text_md5.upadte((key+yan).encode("utf-8"))

5、总结

本期,我们对hashlib模块中hash算法特点、hashlib模块相关支出算法的方法进行学习和实操。在hash算法中我们常用使用md5/sha1/sha256主要用于文本校验、用户登录认证等数据校验同时,hash算法确保数据的完整性,具有不可逆性,同时它会遭遇到暴力碰撞,因此hash长度越长的安全性也越高。

到此这篇关于Python hashlib模块兴趣的文章就介绍到这了,更多相关Python hashlib模块内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Python hashlib模块详情

本文链接: https://www.lsjlt.com/news/158779.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python hashlib模块详情
    目录1. hashlib 模块概述1.1hashlib 模块特点1.2hashlib 模块使用步骤2. hashlib 工作原理2.1hash 算法特点2.2hash 构造方法2.3...
    99+
    2022-11-12
  • python模块——hashlib
    python模块——hashlibhashlib模块是对许多hash函数的一个公共接口new(name, string = '')    执行给定的hash函数来返回一个新的hash对象,使用给定的字符串数据初始化hash对象。如:    ...
    99+
    2023-01-31
    模块 python hashlib
  • python hashlib模块
    hashlib模块:用于加密相关的操作,3.x里代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法SHA512 安全性最高SHA和MD5 是2种算法,SHA算法比...
    99+
    2023-01-30
    模块 python hashlib
  • Python基础之hashlib模块详解
    一、hashlib简介 什么叫hash: hash是一种算法(不同的hash算法只是复杂度不一样)(3.x里代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA5...
    99+
    2022-06-02
    Python hashlib模块 python模块
  • python模块之hashlib
    hashlib模块实现了多种安全哈希和信息摘要算法的通用接口,包括FIPS中定义的SHA1, SHA224, SHA256, SHA384, SHA512以及RFC 1321中定义的MD5 注意点:1. adler32及crc32哈希由z...
    99+
    2023-01-31
    模块 python hashlib
  • python加密模块-hashlib模块
    hashlib模块 用于加密相关的操作,3.X里代替了md5模块和sha模块,主要提供SHA1,SHA224,SHA256,SHA384,SHA512,MD5算法 (sha比md5 更复杂、md5 不能反解) 具体应用:用于网站防篡改。具...
    99+
    2023-01-31
    模块 python hashlib
  • Python hashlib模块与subprocess模块使用详细介绍
    目录1、什么是哈希hash2、hash的用途3、如何用4、subprocess模块1、什么是哈希hash hash一类算法,该算法接受传入的内容,经过运算得到一串hash值 hash...
    99+
    2022-11-11
  • python hashlib模块算法
    python中的hashlib为我们提供了常见的摘要算法,如MD5、sha1 那么现在问题来了,摘要算法是what? 摘要算法又称哈希算法、散列算法。 它指的是把任意长度的数据data,通过函数f(),转换为一个长度固定的摘要diges...
    99+
    2023-01-30
    算法 模块 python
  • python hashlib模块学习
    目录 hashlib 模块 破解密码 hmac 模块 1.干嘛用的: 对字符进行加密,其实就是一个自定义的字符编码表,...
    99+
    2023-01-31
    模块 python hashlib
  • Python base64和hashlib模块及用法详解
    目录一、base64模块1、对字符串编解码2、对URL编解码二、hashlib模块1、hashlib模块1.1 常用属性1.2 常用方法1.3 使用步骤2、MD5(消息摘要算法)3、...
    99+
    2023-02-24
    Python base64和hashlib模块 Python base64和hashlib
  • Python基础之hashlib模块subprocess模块logging模块
    目录一、hashlib模块基本操作与用法二、subprocess模块简介基本操作与用法三、logging模块简介基本操作与用法一、hashlib模块 什么是哈希模块: hashlib...
    99+
    2022-11-11
  • 常用模块 - hashlib模块
    一、简介 Python的hashlib提供了常见的摘要算法,如MD5、SHA1、SHA224、SHA256、SHA384、SHA512等算法。 什么是摘要算法呢?摘要算法又称哈希算法、散列算法。它通过一个函数,把任意长度的数据转换为一个长...
    99+
    2023-01-31
    模块 常用 hashlib
  • Python hashlib模块详细讲解使用方法
    目录1.hashlib的简介2.hashlib的使用1. 常用属性2. 常用方法3. 使用示例3.hashlib的特点4.实际演示1. 基本演示2. 应用场景案例1.hashlib的...
    99+
    2022-11-13
    Python hashlib模块 Python hashlib
  • Python calendar模块详情
    目录1. calendar 模块概述1.1calendar 特点1.2calendar 类结构1.3calendar 使用步骤2. calendar 相关方法2.2calendar ...
    99+
    2022-11-12
  • python beautifulsoup4 模块详情
    目录一、BeautifulSoup4 基础知识补充二、爬虫案例一、BeautifulSoup4 基础知识补充 BeautifulSoup4 是一款 python 解析库,主...
    99+
    2022-11-11
  • Python 正则模块详情
    目录1、正则表达式的装饰符2、查找单个匹配项2.2 group2.3 search2.4 fullmatch2.5 匹配对象3、查找多个匹配项3.1 compile3.2 finda...
    99+
    2022-11-12
  • Python 中 Shutil 模块详情
    一、什么是shutil shutil可以简单地理解为sh + util ,shell工具的意思。shutil模块是对os模块的补充,主要针对文件的拷贝、删除、移动、压缩和解压操作。 ...
    99+
    2022-11-12
  • python中hashlib模块用法示例
    我们以前介绍过一篇Python加密的文章:Python 加密的实例详解。今天我们看看python中hashlib模块用法示例,具体如下。 hashlib hashlib主要提供字符加密功能,将md5和sh...
    99+
    2022-06-04
    示例 模块 python
  • python3--序列化模块,hashlib模块
    内置方法(回顾)__len__    len(obj)的结果依赖于obj.__len__()的结果,计算对象的长度__hash__   hash(obj)的结果依赖于obj.__hash__()的结果,计算对象...
    99+
    2023-01-30
    模块 序列化 hashlib
  • Python os和os.path模块详情
    1、目的:在Python中实现只读取扩展名为xlsx的文件 解决方法: 使用os模块。 解决思路: 1、确定目录2、循环遍历每一个文件3、筛选符合条件的文件,读取数据 具体代码如下...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作