Bruteforce hash (few chars) - HackTricks

> [!TIP] Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
> Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

> Support HackTricks
> - Check the subscription plans!
> - Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
> - Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.

    import hashlib

    target = '2f2e2e' #/..
    candidate = 0
    while True:
        plaintext = str(candidate)
        hash = hashlib.md5(plaintext.encode('ascii')).hexdigest()
        if hash[-1*(len(target)):] == target: #End in target
            print('plaintext:"' + plaintext + '", md5:' + hash)
            break
        candidate = candidate + 1

    #From isHaacK
    import hashlib
    from multiprocessing import Process, Queue, cpu_count

    def loose_comparison(queue, num):
    	target = '0e'
    	plaintext = f"a_prefix{str(num)}a_suffix"
    	hash = hashlib.md5(plaintext.encode('ascii')).hexdigest()

    	if hash[:len(target)] == target and not any(x in "abcdef" for x in hash[2:]):
    		print('plaintext: ' + plaintext + ', md5: ' + hash)
    		queue.put("done") # triggers program exit

    def worker(queue, thread_i, threads):
    	for num in range(thread_i, 100**50, threads):
    		loose_comparison(queue, num)

    def main():
    	procs = []
    	queue = Queue()
    	threads = cpu_count() # 2

    	for thread_i in range(threads):
    		proc = Process(target=worker, args=(queue, thread_i, threads ))
    		proc.daemon = True # kill all subprocess when main process exits.
    		procs.append(proc)
    		proc.start()

    	while queue.empty(): # exits when a subprocess is done
    		pass
    	return 0

    main()

> [!TIP] Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
> Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

> Support HackTricks
> - Check the subscription plans!
> - Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
> - Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.