Support HackTricks and get benefits! - Do you work in a **cybersecurity company**? Do you want to see your **company advertised in HackTricks**? or do you want to have access to the **latest version of the PEASS or download HackTricks in PDF**? Check the [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)! - Discover [**The PEASS Family**](https://opensea.io/collection/the-peass-family), our collection of exclusive [**NFTs**](https://opensea.io/collection/the-peass-family) - Get the [**official PEASS & HackTricks swag**](https://peass.creator-spring.com) - **Join the** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** me on **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/carlospolopm)**.** - **Share your hacking tricks by submitting PRs to the** [**hacktricks github repo**](https://github.com/carlospolop/hacktricks)**.**
```python 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 ``` ```python #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() ```
Support HackTricks and get benefits! - Do you work in a **cybersecurity company**? Do you want to see your **company advertised in HackTricks**? or do you want to have access to the **latest version of the PEASS or download HackTricks in PDF**? Check the [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)! - Discover [**The PEASS Family**](https://opensea.io/collection/the-peass-family), our collection of exclusive [**NFTs**](https://opensea.io/collection/the-peass-family) - Get the [**official PEASS & HackTricks swag**](https://peass.creator-spring.com) - **Join the** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** me on **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/carlospolopm)**.** - **Share your hacking tricks by submitting PRs to the** [**hacktricks github repo**](https://github.com/carlospolop/hacktricks)**.**