import hashlib import os import binascii nr_collisions = 0 hashed_dict = {} strn_table = {} n = 1 file = open("results.txt", "w") while n < 11: strn = binascii.b2a_hex(os.urandom(16)) hashed_strn = hashlib.md5(strn).hexdigest() sliced_hash = hashed_strn[:n] if sliced_hash in hashed_dict: nr_collisions += 1 x = "----------------------------------------------------------------------------------" z = "Collision number: " + str(nr_collisions) + " "*n + "Collision: " + str(sliced_hash) a = "Hashes: " + " "*(n-7) + str(hashed_dict[sliced_hash]) + " " + str(hashed_strn) b = "Values: " + " "*(n-7) + strn.decode() + " " + strn_table[sliced_hash].decode() file.write(x + "\n" + z + "\n" + a + "\n" + b + "\n") n += 1 else: hashed_dict[sliced_hash] = hashed_strn strn_table[sliced_hash] = strn file.close()