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/