如何使用Hashlib对MD5进行数字哈希?

问题描述 投票:0回答:1

似乎每个人都在这样做:

import hashlib 

# initializing string 
str = "GeeksforGeeks"

# encoding GeeksforGeeks using encode() 
# then sending to md5() 
result = hashlib.md5(str.encode()) 

但是,我想对纯数字进行哈希处理。像

之类的东西
result = hashlib.md5(0) 
#or
var = 5
result = hashlib.md5(var)

无效,并且我尝试了许多其他变体。什么是正确的语法?

python md5 hashlib
1个回答
0
投票

散列以字节的序列进行操作。

Python中的整数只是一个逻辑值;它没有确定的大小或字节表示形式。如果要对数字进行哈希处理,则需要在对数字进行哈希处理之前决定将其放入哪种形式。

最简单的选择是将数字的字符串表示形式散列。为此,请调用str并对该结果进行哈希处理。 E.g

var = 5
hash_input = str(var)
result = hashlib.md5(hash_input)

另一种选择是选择固定大小,然后对数字的二进制表示进行散列:

var = 5
hash_input = struct.pack('<I', var)  # Little-endian 32-bit unsigned
result = hashlib.md5(hash_input)
© www.soinside.com 2019 - 2024. All rights reserved.