- import hashlib, re, binascii 
-   
- a = """d131dd02c5e6eec4693d9a0698aff95c 2fcab58712467eab4004583eb8fb7f89 
- 55ad340609f4b30283e488832571415a 085125e8f7cdc99fd91dbdf280373c5b 
- d8823e3156348f5bae6dacd436c919c6 dd53e2b487da03fd02396306d248cda0 
- e99f33420f577ee8ce54b67080a80d1e c69821bcb6a8839396f9652b6ff72a70""" 
-   
- b = """d131dd02c5e6eec4693d9a0698aff95c 2fcab50712467eab4004583eb8fb7f89 
- 55ad340609f4b30283e4888325f1415a 085125e8f7cdc99fd91dbd7280373c5b 
- d8823e3156348f5bae6dacd436c919c6 dd53e23487da03fd02396306d248cda0 
- e99f33420f577ee8ce54b67080280d1e c69821bcb6a8839396f965ab6ff72a70""" 
-   
- sa = re.sub("[\s|\n]", "", a) 
- sb = re.sub("[\s|\n]", "", b) 
-   
- print('String binária 1:') 
- print(sa) 
- print('') 
- ha = hashlib.md5() 
- for i in range(0, len(sa), 2): 
- 	ha.update(binascii.a2b_hex(sa[i:i+2])) 
- print("Hash: " + ha.hexdigest()) 
-   
- print('') 
-   
- print('String binária 2:') 
- print(sb) 
- print('') 
- hb = hashlib.md5() 
- for i in range(0, len(sb), 2): 
- 	hb.update(binascii.a2b_hex(sb[i:i+2])) 
- print("Hash: " + hb.hexdigest()) 
-   
- print('') 
-   
- print('a == b           ? ' + str(a == b)) 
- print('MD5(a) == MD5(b) ? ' + str(ha.hexdigest() == hb.hexdigest())) 
				aW1wb3J0IGhhc2hsaWIsIHJlLCBiaW5hc2NpaQoKYSA9ICIiImQxMzFkZDAyYzVlNmVlYzQ2OTNkOWEwNjk4YWZmOTVjIDJmY2FiNTg3MTI0NjdlYWI0MDA0NTgzZWI4ZmI3Zjg5CjU1YWQzNDA2MDlmNGIzMDI4M2U0ODg4MzI1NzE0MTVhIDA4NTEyNWU4ZjdjZGM5OWZkOTFkYmRmMjgwMzczYzViCmQ4ODIzZTMxNTYzNDhmNWJhZTZkYWNkNDM2YzkxOWM2IGRkNTNlMmI0ODdkYTAzZmQwMjM5NjMwNmQyNDhjZGEwCmU5OWYzMzQyMGY1NzdlZThjZTU0YjY3MDgwYTgwZDFlIGM2OTgyMWJjYjZhODgzOTM5NmY5NjUyYjZmZjcyYTcwIiIiCgpiID0gIiIiZDEzMWRkMDJjNWU2ZWVjNDY5M2Q5YTA2OThhZmY5NWMgMmZjYWI1MDcxMjQ2N2VhYjQwMDQ1ODNlYjhmYjdmODkKNTVhZDM0MDYwOWY0YjMwMjgzZTQ4ODgzMjVmMTQxNWEgMDg1MTI1ZThmN2NkYzk5ZmQ5MWRiZDcyODAzNzNjNWIKZDg4MjNlMzE1NjM0OGY1YmFlNmRhY2Q0MzZjOTE5YzYgZGQ1M2UyMzQ4N2RhMDNmZDAyMzk2MzA2ZDI0OGNkYTAKZTk5ZjMzNDIwZjU3N2VlOGNlNTRiNjcwODAyODBkMWUgYzY5ODIxYmNiNmE4ODM5Mzk2Zjk2NWFiNmZmNzJhNzAiIiIKCnNhID0gcmUuc3ViKCJbXHN8XG5dIiwgIiIsIGEpCnNiID0gcmUuc3ViKCJbXHN8XG5dIiwgIiIsIGIpCgpwcmludCgnU3RyaW5nIGJpbsOhcmlhIDE6JykKcHJpbnQoc2EpCnByaW50KCcnKQpoYSA9IGhhc2hsaWIubWQ1KCkKZm9yIGkgaW4gcmFuZ2UoMCwgbGVuKHNhKSwgMik6CgloYS51cGRhdGUoYmluYXNjaWkuYTJiX2hleChzYVtpOmkrMl0pKQpwcmludCgiSGFzaDogIiArIGhhLmhleGRpZ2VzdCgpKQoKcHJpbnQoJycpCgpwcmludCgnU3RyaW5nIGJpbsOhcmlhIDI6JykKcHJpbnQoc2IpCnByaW50KCcnKQpoYiA9IGhhc2hsaWIubWQ1KCkKZm9yIGkgaW4gcmFuZ2UoMCwgbGVuKHNiKSwgMik6CgloYi51cGRhdGUoYmluYXNjaWkuYTJiX2hleChzYltpOmkrMl0pKQpwcmludCgiSGFzaDogIiArIGhiLmhleGRpZ2VzdCgpKQoKcHJpbnQoJycpCgpwcmludCgnYSA9PSBiICAgICAgICAgICA/ICcgKyBzdHIoYSA9PSBiKSkKcHJpbnQoJ01ENShhKSA9PSBNRDUoYikgPyAnICsgc3RyKGhhLmhleGRpZ2VzdCgpID09IGhiLmhleGRpZ2VzdCgpKSk=