digest python
时间: 2025-01-08 07:11:13 浏览: 2
### Python中与Digest相关的模块
在Python标准库中,`hashlib` 模块提供了多种安全哈希和消息摘要算法的实现。这些算法可以用来计算输入数据的消息摘要(即digest),广泛应用于数据完整性验证、密码存储等方面[^3]。
#### 创建消息摘要实例
为了创建一个特定类型的摘要对象,可以通过 `hashlib.new()` 函数指定名称来初始化,也可以直接调用相应的构造器如 `hashlib.md5()`, `hashlib.sha1()`, 等等:
```python
import hashlib
# 使用SHA-256算法创建一个新的摘要对象
sha256_hash = hashlib.sha256()
```
#### 更新摘要对象
一旦有了摘要对象,就可以通过多次调用其 `update()` 方法向其中添加待处理的数据片段。这允许分批读取大文件而不必一次性加载全部内容到内存里:
```python
data_chunk_1 = b'This is the first part of data.'
data_chunk_2 = b'Second chunk goes here.'
sha256_hash.update(data_chunk_1)
sha256_hash.update(data_chunk_2)
```
#### 获取最终摘要值
当所有的数据都已更新完毕后,可通过 `hexdigest()` 或者 `digest()` 来获得十六进制表示形式或二进制字节串的结果:
```python
hex_digest = sha256_hash.hexdigest() # 返回十六进制字符串
byte_digest = sha256_hash.digest() # 返回bytes类型
print(f"Hex Digest: {hex_digest}")
print(f"Byte Digest: {byte_digest!r}") # !r 调用了repr()函数
```
#### 完整示例代码
下面给出一段完整的例子,展示如何利用 `hashlib` 计算给定字符串的 SHA-256 消息摘要:
```python
import hashlib
def calculate_sha256(message):
"""Calculate and return SHA-256 hash of given message."""
hasher = hashlib.sha256()
hasher.update(message.encode('utf-8'))
return hasher.hexdigest()
message = "The quick brown fox jumps over lazy dog"
result = calculate_sha256(message)
print(f"The SHA-256 digest of '{message}' is:")
print(result)
```
阅读全文