【Python快速上手(三十二)】- Python hashlib 模块

目录

  • Python快速上手(三十二)
    • Python hashlib 模块
      • 1. 安装和导入
      • 2. 常见哈希函数
      • 3. 使用哈希函数
      • 4. 使用哈希对象的常见方法
      • 5. 文件的哈希值
      • 6. 安全性考虑
      • 7. 高级用法
      • 8. 其他哈希函数
      • 9. 小结

Python快速上手(三十二)

Python hashlib 模块

Python 的 hashlib 模块提供了常见的摘要算法,例如 SHA1、SHA224、SHA256、SHA384、SHA512、MD5 等等。摘要算法(也称为哈希函数)是一种将任意长度的输入转化为固定长度输出的算法,输出通常称为哈希值。摘要算法在密码学、数据完整性验证、数字签名等领域有广泛应用。

1. 安装和导入

hashlib 模块是 Python 标准库的一部分,不需要单独安装。可以直接导入使用:

import hashlib

2. 常见哈希函数

hashlib 支持多种常见的哈希函数,每种哈希函数生成的哈希值长度不同。以下是几种常用的哈希函数:

  • MD5:生成128位哈希值,输出32个十六进制字符。已被认为不安全。
  • SHA1:生成160位哈希值,输出40个十六进制字符。已被认为不安全。
  • SHA256:生成256位哈希值,输出64个十六进制字符。
  • SHA512:生成512位哈希值,输出128个十六进制字符。

3. 使用哈希函数

3.1 计算哈希值
以下是计算字符串哈希值的基本用法:

import hashlib

# 创建哈希对象
hash_object = hashlib.md5()
hash_object.update('hello world'.encode('utf-8'))
hash_value = hash_object.hexdigest()
print(hash_value)  # 5eb63bbbe01eeed093cb22bb8f5acdc3

update 方法接受字节类型的参数,因此需要将字符串编码为字节类型。常用的编码方式是 utf-8。

3.2 一步计算哈希值
可以在创建哈希对象时直接传入数据:

hash_value = hashlib.md5('hello world'.encode('utf-8')).hexdigest()
print(hash_value)

3.3 不同的哈希函数
可以选择不同的哈希函数:

sha1_hash = hashlib.sha1('hello world'.encode('utf-8')).hexdigest()
print(sha1_hash)  # 2aae6c35c94fcfb415dbe95f408b9ce91ee846ed

sha256_hash = hashlib.sha256('hello world'.encode('utf-8')).hexdigest()
print(sha256_hash)  # b94d27b9934d3e08a52e52d7da7dabfa49d8ee1a2be0a6f733d8fb0e8e00b502

3.4 更新哈希对象
可以多次调用 update 方法更新哈希对象:

hash_object = hashlib.sha256()
hash_object.

你可能感兴趣的:(python,python,哈希算法,散列表,开发语言)