我想在Python 3中使用内置的hash 2.7算法的hashlib实现]

问题描述 投票:-2回答:1
我使用哈希函数在Python 2中生成一些分区键值。我依赖于内置的哈希函数。我不知道该实现不能保证在各个版本中都是相同的,我应该使用带有指定算法(例如md5或sha256)的Python hashlib库。

为了升级到python 3,我需要算法才能继续工作,我想知道是否存在与hash函数等效的python代码或利用hashlib库生成结果。

简单使用hashlib算法似乎没有使用相同的答案python 3使用不同的算法sipHash和随机种子进行字符串哈希。

-更新我尝试在python 2中运行此代码,但由于它生成不同的结果而无法正常工作。

def c_mul(a, b): return eval(hex((long(a) * b) & 0xFFFFFFFFL)[:-1]) def hash2(self): if not self: return 0 # empty value = ord(self[0]) << 7 for char in self: value = c_mul(1000003, value) ^ ord(char) value = value ^ len(self) if value == -1: value = -2 return value

尽管我需要代码才能在python 3中运行

-更新通过考虑64位和python3的特定实现对上述算法进行了修改。解决方案在答案中。

我使用哈希函数在Python 2中生成一些分区键值。我依赖于内置的哈希函数。我不知道版本之间的实现不能保证是相同的...

python hash
1个回答
0
投票
嗨,我找到了一个看起来像在工作的解决方案:
© www.soinside.com 2019 - 2024. All rights reserved.