import hashlib
from multiprocessing import pool
from multiprocessing.dummy import Pool as ThreadPool
# MD5Truncation value is known. Find raw data.
# Example substr(md5(captcha), 0, 6)=60b7ef
def md5(s): #calculate MD5 string
return hashlib.md5(str(s).encode('utf-8')).hexdigest()
def findmd5(sss): # Input range will be tested in md5
key = sss.split(':')
Start = int(key[0]) # start position
End = int(key[1]) # end position
result = 0
for i in range(Start, End):
# print(md5(i)[md5start:md5length])
if md5(i)[0:6] == '60b7ef': # get the encrypted string
result = i
print (result) # print
break
List=[] # parameter list
for i in range(10): # multi-threaded list of numbers start and end
List.append(str(10000000*i) + ':' + str(10000000*(i+1)))
Pool = ThreadPool() # Multithreaded task
Pool.map(findmd5, List) # function and parameter list
【Python小程序】CTFhash碰撞脚本
于 2021-06-16 10:15:25 首次发布