python常用模块-hashlib模块

本文深入解析Python的hashlib模块,介绍其基本概念、特点及常用方法。通过实例演示如何使用hashlib进行文件校验,确保数据完整性和安全性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

hashlib的基本概念

hash是一种摘要算法(不同的hash算法只是复杂度不一样)(3.x里代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法),该算法接受传入的内容,经过运算得到一串hash值,且此hash值无法反向运算成传入的值。

基本特点

  • 对同样的内容进行hash每次的值必然相同
  • 每次hash形成的长度必然一样
  • 无法通过运算返解

模块基本方法

hashlib.md5(['str'.encode('编码方法')])
返回一个hash对象,可以加入初始对象来作为初始key,也可以不加,其中md5算法可以替换为现在常用的sha256

hash.update('str'.encode('utf8'))
可以将一个hash对象传入内容来进行hash,无法进行将结果赋予一个变量

hash.hexdigest()
生成hash值的函数

import hashlib

my_hash = hashlib.sha256("admin".encode("utf-8"))
my_hash.update("hello".encode("utf-8"))
my_hash = my_hash.hexdigest()
print(my_hash)
#98baa6003b9271087644eaa33b22e625d55ed767a9cdf45c1f5aff89f58b5087

实例

检验两个文件是否为同一个文件

import hashlib
m = hashlib.md5()
with open(r'G:/logging模块配图.png','rb') as f:
    for line in f:
        m.update(line)
print(m.hexdigest())          #47a6b079cc33a4f312786b46e61e0305

m1 = hashlib.md5()
with open(r'H:/logging模块配图.png','rb') as f1:
    for line in f1:
        m1.update(line)
print(m1.hexdigest()) 
安装 Python常用模块可以通过多种方式进行,具体取决于操作系统、Python 版本以及模块的来源。以下是几种常见的安装方式: ### 使用 `pip` 安装模块 `pip` 是 Python 的包管理工具,可以用来安装和管理第三方模块。推荐使用虚拟环境进行模块管理,以避免不同项目之间的依赖冲突。 - **在 macOS 或 Linux 上**: - 如果使用的是 Python 2.x,可以在终端中运行以下命令: ```bash sudo pip install 模块名 ``` - 如果使用的是 Python 3.x,建议使用以下命令: ```bash sudo pip3 install 模块名 ``` 例如安装 `numpy` 模块: ```bash sudo pip3 install numpy ``` - **在 Windows 上**: - 对于 Python 2.x,可以直接在命令提示符中输入: ```cmd pip install 模块名 ``` - 对于 Python 3.x,可以使用: ```cmd pip3 install 模块名 ``` 例如安装 `numpy` 模块: ```cmd pip3 install numpy ``` ### 手动下载并安装模块 如果无法通过 `pip` 安装模块,或者需要特定版本的模块,可以从模块的官方网站或 PyPI 页面手动下载 `.whl` 文件(适用于 Windows)或源代码包(`.tar.gz` 文件),然后进行安装。 - **Windows 用户**: - 下载 `.whl` 文件后,可以使用以下命令进行安装: ```cmd pip install 文件名.whl ``` - **Linux/macOS 用户**: - 下载源代码包后,解压文件并在解压后的目录中运行以下命令: ```bash python setup.py install ``` 或者使用 `pip` 直接从本地文件安装: ```bash pip install 文件名.tar.gz ``` ### 使用虚拟环境 为了避免全局环境中模块版本冲突的问题,推荐使用虚拟环境来管理模块。可以使用 `venv`(Python 3.3+ 自带)或 `virtualenv` 来创建虚拟环境。 - **创建虚拟环境**: ```bash python3 -m venv env_name ``` 或者使用 `virtualenv`: ```bash virtualenv env_name ``` - **激活虚拟环境**: - 在 macOS/Linux 上: ```bash source env_name/bin/activate ``` - 在 Windows 上: ```cmd env_name\Scripts\activate ``` - **在虚拟环境中安装模块**: ```bash pip install 模块名 ``` ### 常见模块示例 - **JSON 和 Pickle 模块**:用于数据序列化和反序列化,其中 `json` 支持跨语言的数据交换,而 `pickle` 用于 Python 对象的持久化存储 [^2]。 - **Hashlib 模块**:提供多种加密算法,如 SHA1、SHA256、MD5 等,用于生成数据的哈希值 [^2]。 - **Logging 模块**:用于记录日志信息,帮助调试和监控程序运行状态 [^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值