mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-23 05:03:35 +00:00
53 lines
1.2 KiB
Markdown
53 lines
1.2 KiB
Markdown
# Bruteforce hash \(few chars\)
|
|
|
|
```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()
|
|
```
|
|
|