首页 > 编程语言 >python hashlib模块详解

python hashlib模块详解

时间:2024-03-04 11:56:00浏览次数:18  
标签:hashlib 加密 python bytes hexdigest 详解 print digest

hashlib 是python自带的加密模块,提供了一些基础常用的加密方式,如:md5(), sha1(), sha224(), sha256(), sha384(), sha512(), blake2b(), blake2s()

 

Hash 对象提供了4个方法:

 

--update(data):更新hash对象的字节数据,data是需要加密的文本内容,需要转为bytes类型,如果”abc123”.encode() 将字符串”abc123”转为bytes类型。

 

--digest():返回加密后的bytes值内容,类型:bytes。

 

--hexdigest():返回加密后的哈希值文本内容。

 

--copy():复制hash 对象信息。

 

Md5加密

方式一:

import hashlib

m = hashlib.md5("123456".encode())
print("打印md5密文-bytes类型:",m.digest())
print("打印md5密文-哈希值:",m.hexdigest())

执行结果:

 

方式二:

import hashlib

m = hashlib.md5()
m.update("123456".encode())  # 通过md5对象的update方法对内容进行加密
print("打印md5加密结果,bytes类型:",m.digest())
print("打印md5加密结果,哈希值:",m.hexdigest())

执行结果:

 

方式三:

import hashlib

# name 对应加密类型,不区分大小写
# data 需要加密的内容,需转为bytes类型
m = hashlib.new(name="mD5",data="123456".encode())
print("打印通过new调用md5加密结果,bytes类型:",m.digest())
print("打印通过new调用md5加密结果,哈希值:",m.hexdigest())

执行结果:

 

Sha1加密:

方式一、

import hashlib

m = hashlib.sha1("123456".encode())
print("直接通过sha1方法进行加密,结果bytes类型:",m.digest())
print("直接通过sha1方法进行加密,哈希值:",m.hexdigest())

执行结果:

 

方式二、

import hashlib

m = hashlib.sha1()
m.update("123456".encode())
print("通过sha1对象update方法进行加密,结果bytes类型:",m.digest())
print("通过sha1对象update方法进行加密,哈希值:",m.hexdigest())

执行结果:

 方式三、

import hashlib

# name 对应加密类型,不区分大小写
# data 需要加密的内容,需转为bytes类型
m = hashlib.new(name="sha1",data="123456".encode())
print("打印通过new调用sha1加密结果,bytes类型:",m.digest())
print("打印通过new调用sha1加密结果,哈希值:",m.hexdigest())

执行结果:

 

sha224加密:

方式一、

import hashlib

m = hashlib.sha224("123456".encode())
print("直接通过sha224方法进行加密,结果bytes类型:",m.digest())
print("直接通过sha224方法进行加密,哈希值:",m.hexdigest())

执行结果:

 

方式二、

import hashlib

m = hashlib.sha224()
m.update("123456".encode())
print("通过sha224对象update方法进行加密,结果bytes类型:",m.digest())
print("通过sha224对象update方法进行加密,哈希值:",m.hexdigest())

执行结果:

方式三、

import hashlib

# name 对应加密类型,不区分大小写
# data 需要加密的内容,需转为bytes类型
m = hashlib.new(name="sha224",data="123456".encode())
print("打印通过new调用sha224加密结果,bytes类型:",m.digest())
print("打印通过new调用sha224加密结果,哈希值:",m.hexdigest())

执行结果:

 

 

sha256加密:

方式一、

import hashlib

m = hashlib.sha256("123456".encode())
print("直接通过sha256方法进行加密,结果bytes类型:",m.digest())
print("直接通过sha256方法进行加密,哈希值:",m.hexdigest())

执行结果:

 

方式二、

import hashlib

m = hashlib.sha256()
m.update("123456".encode())
print("通过sha256对象update方法进行加密,结果bytes类型:",m.digest())
print("通过sha256对象update方法进行加密,哈希值:",m.hexdigest())

执行结果:

方式三、

import hashlib

# name 对应加密类型,不区分大小写
# data 需要加密的内容,需转为bytes类型
m = hashlib.new(name="sha256",data="123456".encode())
print("打印通过new调用sha256加密结果,bytes类型:",m.digest())
print("打印通过new调用sha256加密结果,哈希值:",m.hexdigest())

执行结果:

 

 

sha384加密:

方式一、

import hashlib

m = hashlib.sha384("123456".encode())
print("直接通过sha384方法进行加密,结果bytes类型:",m.digest())
print("直接通过sha384方法进行加密,哈希值:",m.hexdigest())

执行结果:

 方式二、

import hashlib

m = hashlib.sha384()
m.update("123456".encode())
print("通过sha384对象update方法进行加密,结果bytes类型:",m.digest())
print("通过sha384对象update方法进行加密,哈希值:",m.hexdigest())

执行结果:

 方式三、

import hashlib

# name 对应加密类型,不区分大小写
# data 需要加密的内容,需转为bytes类型
m = hashlib.new(name="sha384",data="123456".encode())
print("打印通过new调用sha384加密结果,bytes类型:",m.digest())
print("打印通过new调用sha384加密结果,哈希值:",m.hexdigest())

执行结果:

 

Sha512加密:

方式一、

import hashlib

m = hashlib.sha512("123456".encode())
print("直接通过sha512方法进行加密,结果bytes类型:",m.digest())
print("直接通过sha512方法进行加密,哈希值:",m.hexdigest())

执行结果:

 方式二、

import hashlib

m = hashlib.sha512()
m.update("123456".encode())
print("通过sha512对象update方法进行加密,结果bytes类型:",m.digest())
print("通过sha512对象update方法进行加密,哈希值:",m.hexdigest())

执行结果:

 方式三、

import hashlib

# name 对应加密类型,不区分大小写
# data 需要加密的内容,需转为bytes类型
m = hashlib.new(name="sha512",data="123456".encode())
print("打印通过new调用sha512加密结果,bytes类型:",m.digest())
print("打印通过new调用sha512加密结果,哈希值:",m.hexdigest())

执行结果:

 

blake2b加密:

方式一、

import hashlib

m = hashlib.blake2b("123456".encode())
print("直接通过blake2b方法进行加密,结果bytes类型:",m.digest())
print("直接通过blake2b方法进行加密,哈希值:",m.hexdigest())

执行结果:

 

方式二、

import hashlib

m = hashlib.blake2b()
m.update("123456".encode())
print("通过blake2b对象update方法进行加密,结果bytes类型:",m.digest())
print("通过blake2b对象update方法进行加密,哈希值:",m.hexdigest())

执行结果:

 

方式三、

import hashlib

# name 对应加密类型,不区分大小写
# data 需要加密的内容,需转为bytes类型
m = hashlib.new(name="blake2b",data="123456".encode())
print("打印通过new调用blake2b加密结果,bytes类型:",m.digest())
print("打印通过new调用blake2b加密结果,哈希值:",m.hexdigest())

执行结果:

 

blake2s加密:

方式一、

import hashlib

m = hashlib.blake2s("123456".encode())
print("直接通过blake2s方法进行加密,结果bytes类型:",m.digest())
print("直接通过blake2s方法进行加密,哈希值:",m.hexdigest())

执行结果:

 方式二、

import hashlib

m = hashlib.blake2s()
m.update("123456".encode())
print("通过blake2s对象update方法进行加密,结果bytes类型:",m.digest())
print("通过blake2s对象update方法进行加密,哈希值:",m.hexdigest())

执行结果:

 

方式三、

import hashlib

# name 对应加密类型,不区分大小写
# data 需要加密的内容,需转为bytes类型
m = hashlib.new(name="blake2s",data="123456".encode())
print("打印通过new调用blake2s加密结果,bytes类型:",m.digest())
print("打印通过new调用blake2s加密结果,哈希值:",m.hexdigest())

执行结果:

 

标签:hashlib,加密,python,bytes,hexdigest,详解,print,digest
From: https://www.cnblogs.com/JcHome/p/18051520

相关文章

  • Unity3D 渲染队列 ZTest与ZWrite详解
    在Unity3D中,渲染队列(RenderingQueue)是一个非常重要的概念,它决定了游戏中各个物体的渲染顺序和优先级。而在渲染队列中,ZTest和ZWrite又是两个关键的参数,它们决定了物体在渲染的过程中如何处理深度测试和深度写入。本文将详细介绍Unity3D中的渲染队列、ZTest和ZWrite的概念,并给出相......
  • Unity3D Shader事项法线贴图功能详解
    Unity3D它提供了丰富的功能和工具,使开发人员能够轻松创建出色的游戏和应用程序。其中Shader是Unity3D中非常重要的一部分,它可以帮助开发人员实现各种视觉效果,包括法线贴图功能。对啦!这里有个游戏开发交流小组里面聚集了一帮热爱学习游戏的零基础小白,也有一些正在从事游戏开发的技......
  • 详解Python中sys模块的功能与应用
    本文分享自华为云社区《深入Python:sys模块的功能与应用详解》,作者:柠檬味拥抱。在Python的标准库中,sys 模块是一个常用而强大的工具,它提供了与Python解释器交互的函数和变量。本文将介绍sys模块的一些常用函数和方法,并通过实际的代码实例来解析它们的用法。1.sys.argv-命令......
  • 机器学习策略篇:详解训练/开发/测试集划分(Train/dev/test distributions)
    训练/开发/测试集划分设立训练集,开发集和测试集的方式大大影响了或者团队在建立机器学习应用方面取得进展的速度。同样的团队,即使是大公司里的团队,在设立这些数据集的方式,真的会让团队的进展变慢而不是加快,看看应该如何设立这些数据集,让团队效率最大化。在此,想集中讨论如何设立......
  • Python实现snap:对齐多张遥感影像的空间范围
      本文介绍基于Python中ArcPy模块,实现基于栅格图像批量裁剪栅格图像,同时对齐各个栅格图像的空间范围,统一其各自行数与列数的方法。  首先明确一下我们的需求。现有某一地区的多张栅格遥感影像,其虽然都大致对应着同样的地物范围,但不同栅格影像之间的空间范围、行数与列数、像......
  • python之为函数执行设置超时时间(允许函数执行的最大时间)
    1、背景    通常我们在自定义一个函数后,会调用这个函数来完成我们想要的功能。  就拿爬虫来举例,发送请求后服务器会在指定时间内响应(通常这个时间很短),但是有可能服务器没有返回任何数据。  无论是服务器已经识别爬虫不予返回数据亦或者是服务器繁忙等其他原因,......
  • python基础面试题
    1.断言是什么?assert(断言)用于判断一个表达式,在表达式条件为false的时候会抛出异常AssertionError,ture时断言通过1.1基本语法是:<assert要判断的表达式>1.2断言方法及其用法示例:assertEqual(a,b):断言a和b相等。self.assertEqual(2+2,4)assertNotEqual(a,b):断......
  • [详解-vector] C++必知必会 vector常用各种操作解析
    原文转载自知乎:https://zhuanlan.zhihu.com/p/648650828vector是C++标准库中的一个动态数组容器,它可以自动管理内存大小,可以在运行时根据需要动态增长或缩小。它是一个非常常用且强大的容器,用于存储一系列元素。下面详细介绍vector的使用方法,并提供相应的代码案例。1.包含......
  • python 视图渲染方式
    1 第二种和第三种都需要改配置文件(需要重启服务)   2  3  ......
  • python接口自动化系列(14):一键执行生成并打开报告
     本系列汇总,请查看这里:https://www.cnblogs.com/uncleyong/p/18033074需求在前面的篇幅中,查看测试报告,我们要先运行自动化框架(执行pythonmain.py命令)生成result,然后再生成allure-report,最后再打开报告,这样稍显麻烦。有测试小伙伴就问,能不能一键执行生成并打开报告呢?当然可......