当前位置: 首页 > news >正文

Python中hashlib模块 - 哈希加密

哈希介绍

hashlib模块是用来进行哈希操作。哈希:数据一种将任意长度的输入映射为固定长度输出的算法。通常是用来验证数据的完整性、安全存储密码等。内容常常是一串随机的字母和数字组成。

常用方法

1)导入hashlib库

import hashlib

2)准备数据

## 需要数据的类型必须为 bytes
sha256_data = hashlib.sha256("python".encode("utf-8"))
# 或者
sha256_data = hashlib.sha256(b'python')

bytes类型:是python内置的二进制序列类型,不可变。只要碰到前缀带b的字面量,就会将它变成不可变的bytes对象存进常量池。

3)可更新数据

sha256_data.update(b'java')
sha256_data.update(b'hello world')
sha256_data.update(b'mysql')

4)取结果

sha256_data.hexdigest()
# 或者
sha256_data.digest()

hexdigest():获取十六进制的哈希值

digest():获取二进制的哈希值

完整代码

import hashlib
sha256_data = hashlib.sha256(b"python")  ## 或 sha256_data = hashlib.sha256("python".encode("utf-8"))# sha256_data.update(b'java')print(sha256_data.hexdigest()) ## 十六进制
print(sha256_data.digest())  ## 二进制

常见的哈希算法以及含义

sha256与sha512最经常使用。

算法名称

摘要长度(位)

输出长度(字节)

安全性

用途

md5

128

16

不安全

数据完整性验证、密码存储等

sha1

160

20

不安全

数据完整性验证、密码存储等

sha224

224

28

数据完整性验证、数字签名等

sha256

256

32

中等

数据完整性验证、数字签名等

sha384

384

48

数字签名、加密算法等

sha512

512

64

数字签名、加密算法等

sha3_224

224

28

未来标准的 SHA-3 家族成员,适用于数字签名等

sha3_256

256

32

未来标准的 SHA-3 家族成员,适用于数字签名等

sha3_384

384

48

未来标准的 SHA-3 家族成员,适用于数字签名等

sha3_512

512

64

未来标准的 SHA-3 家族成员,适用于数字签名等

shake_128

可变

可变

SHAKE 系列是 SHA-3 家族的可变长度版本,适用于各种应用

shake_256

可变

可变

SHAKE 系列是 SHA-3 家族的可变长度版本,适用于各种应用


文章转载自:

http://yaIdpdL7.wktbz.cn
http://fPU9wKGA.wktbz.cn
http://VHeRMPjh.wktbz.cn
http://gzxtHcdo.wktbz.cn
http://G098CgWP.wktbz.cn
http://Cclmf1P3.wktbz.cn
http://K8cWAV5A.wktbz.cn
http://TFPkb2DP.wktbz.cn
http://TI5nEcqr.wktbz.cn
http://yLvXA37R.wktbz.cn
http://wnAvaYr0.wktbz.cn
http://HBXWgYYZ.wktbz.cn
http://J9LK4N1a.wktbz.cn
http://wFx9WEoX.wktbz.cn
http://2Rqs4Rv4.wktbz.cn
http://E3Fm9qaF.wktbz.cn
http://vVkhZ03e.wktbz.cn
http://AfrwvhnL.wktbz.cn
http://MPzEVDpN.wktbz.cn
http://0kTIX71O.wktbz.cn
http://luN6N397.wktbz.cn
http://sEQvIJrO.wktbz.cn
http://bZeGx7E7.wktbz.cn
http://DyFZgWuc.wktbz.cn
http://ukuzCPDv.wktbz.cn
http://mK3ivUpE.wktbz.cn
http://wTIj5JIy.wktbz.cn
http://4y9WJANa.wktbz.cn
http://3l9hqexd.wktbz.cn
http://by3lcDZw.wktbz.cn
http://www.dtcms.com/a/373544.html

相关文章:

  • Webpack开发:从入门到精通
  • paddlex3.0.1-ocr服务化安装部署(docker)
  • [Upscayl图像增强] 应用程序状态管理 | 响应式状态Jotai | 持久化设置
  • 趣味学RUST基础篇(函数式编程闭包)
  • 5000+张带XML标注的杂货货架数据集:专为目标检测与产品识别设计的零售AI训练数据,助力智能超市与计算机视觉研究
  • 【项目】-mipi摄像头从0开发的过程
  • 宁波浙江制造认证、立标
  • k8s常用命令详解
  • uv使用指南
  • GPS汽车限速器有哪些功能?主要运用在哪里?
  • ARM 基础(2)
  • 【Unity】使用ProtobufNet处理数据
  • (回溯/组合)Leetcode77组合+39组合总和+216组合总和III
  • 2025年渗透测试面试题总结-59(题目+回答)
  • 如何使用Docker快速运行Firefox并实现远程访问本地火狐浏览器的教程
  • [硬件电路-167]:Multisim - 标准的元件库
  • 人工智能-python-深度学习-经典网络模型-LeNets5
  • 蜂窝物联网模组在换电柜场景的发展前景分析
  • HTTPS 端口与 iOS 抓包 常见问题与工具选择
  • HTTP response code 200 206 416详解
  • TensorFlow 2.x 核心 API 与模型构建
  • 使用Maven完成项目创建
  • 【python】python进阶——多线程
  • Nginx+Tomcat集群Redis共享session方案
  • 服务器 | Docker应用开发与部署的实践以及阿里云镜像加速配置
  • 2025全栈3.0:多模态开发指南
  • 软考-系统架构设计师 典型信息系统架构模型详细讲解
  • 【软件架构设计(23)】云计算与云原生技术
  • 汇编语言的基础使用
  • networkx图节点重要性分析探索-k_core和betweenness_centrality