gpt4 book ai didi

python - 范围内的整数是否存在 md5 冲突 (1,1000000000)

转载 作者:行者123 更新时间:2023-11-28 21:39:06 25 4
gpt4 key购买 nike

我想使用 1 到 999999999 之间的预先存在的唯一标识符的 md5 散列在 python 中生成一个 uuid

很明显,对于如此小的数字,没有任何担心......但这让我思考,我们是否知 Prop 有相同 md5 哈希值的最小两个整数?

最佳答案

我测试过,答案是否定的。

使用 set() 计数会在我的 64GB 内存盒上触发 MemoryError,所以我将 hexlify 哈希写入磁盘:

import hashlib
from multiprocessing import Pool
import os

def f(args):
s, e = args
l = []
for i in xrange(s, e):
h = hashlib.md5(str(i)).hexdigest()
l.append(h)
l.sort()
fn = '/data/tmp/%s_%s' % (s, e)
with open(fn, 'w') as f:
for h in l:
f.write('%s\n' % (h,))

def main():
def gen():
end = 1000000000
step = 5000000
s = 0
while s < end:
yield s, s+step
s += step

pool = Pool(processes=16)
res = pool.imap_unordered(f, gen())
list(res)

然后用 sort(1) 计数:

sort -mu /data/tmp/* | wc -l 

产量:

1000000000

请注意,我将整数编码为 ASCII 字符串。

关于python - 范围内的整数是否存在 md5 冲突 (1,1000000000),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47280537/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com