Python:如何使用 hashlib.md5 算法创建 16 个字符长的摘要?

标签 python md5 hashlib

Php's md5 function采用可选的第二个参数,如果为真,则返回长度为 16 的较小散列,而不是正常的 32 字符长散列。

我们如何使用 python 的 hashlib.md5 做同样的事情。

最佳答案

“可选的第二个参数,如果为真,则返回长度为 16 的较小散列,而不是正常的 32 字符长散列。”

这不是真的:第二个参数 $raw_output指定输出是否应为 hexadecimal (十六进制)编码或原始 binary字符串。哈希长度不变,但编码字符串的长度不变。

import hashlib

digest = hashlib.md5("asdf").digest() # 16 byte binary
hexdigest = hashlib.md5("asdf").hexdigest() # 32 character hexadecimal

第一个应该只在您的代码中使用,而不是呈现给用户,因为它将包含不可打印的字符。这就是为什么如果您想向用户显示哈希,您应该始终使用 hexdigest 函数。

关于Python:如何使用 hashlib.md5 算法创建 16 个字符长的摘要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37844962/

相关文章:

OS X 上的 Python 2.7 : TypeError: 'frozenset' object is not callable on each command

python - 最好在 Python 中下载邮件列表文件的开源项目

Python 子进程模块和 Awk

javascript - jQuery 1.3.2 是否有可用的 md5 插件或等效的加密插件?

php - MD5密码问题

node.js - Azure SDK - NodeJS - 重新上传 blob 时 MD5 哈希值无效

python - 在 Python 中散列文件

python - 在 Python 中从二进制文件中读取和解释数据

python - 如何在不停止/退出程序的情况下捕获并打印完整的异常回溯?

python - 使用 hashlib.sha256 创建一个唯一的 id;这保证是独一无二的吗?