python - 如何使用Hashlib对一个数字进行MD5散列?
问题描述
似乎每个人都在这样做:
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 中的整数只是一个逻辑值。它没有明确的大小或字节表示。如果要对数字进行哈希处理,则需要在对其进行哈希处理之前确定将数字放入的形式。
最简单的选择是散列数字的字符串表示形式。通过调用str
和散列该结果来做到这一点。例如
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)
执行此操作的正确方法完全取决于您到底要完成什么,而您没有告诉我们。
推荐阅读
- c++ - 如何在另一个类模板中定义完全专业化类的构造函数
- javascript - 如何声明变量而不在vue中返回它?
- c# - 无法使用 itextsharp 读取安全的 pdf 文件
- python - 如何在python中编写一个函数来计算第一个点和第二个点之间的线上第三个点的坐标
- angular - Angular 多个 http post 请求给我错误:“net::ERR_INSUFFICIENT_RESOURCES”
- c - CC\GCC 编译的可执行文件无法在我的机器上运行?
- r - R 包 - tidyselect 安装失败
- bash - 使用 SSH 执行命令时正确使用引号
- c# - 在 KeyValuePair (C#) 中查找最近的键
- symfony - 如何在不同的域上显示探查器