我目前正在创建一个程序,该程序会创建一个随机的15位数字符串,并找到与字符串相当的SHA-1。
当我转换SHA-1字符串并将其缩短为前15位时,我想在字典中找到任何重复的实例。如果是,它会告诉我分配给它的随机字符串。
你可以想象,这需要永远做。我知道有更有效的方法可以做到这一点,例如二进制搜索或Pollard Rho技术或循环查找,但我在Python中实现这一点很困难。
这是我到目前为止(Python):
for i in range (n):
t=''.join([random.choice(alpha) for _ in range(15)])
t=t.encode('utf-8')
h=hashlib.sha1(t)
h=(h.hexdigest()[0:15])
if h in hashDict:
print ("Duplicate found")
sha1val=hashlib.sha1(hashDict[h])
sha2val=hashlib.sha1(t)
print (hashDict[h],":",sha1val.hexdigest())
print (t,":",sha2val.hexdigest())
break
hashDict[h]=t