Harcrack

mdcrypt.py

Feb 8th, 2020
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.87 KB | None | 0 0
  1. printables = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&\'()*+,-./:;?@[\\]^_`{|}~ \t\n\r\x0b\x0c'
  2. bar = '_____________________________________\n'
  3.  
  4. def decrypt(text, key):
  5.     keylen = len(key)
  6.     keyPos = 0
  7.     decrypted = ""
  8.     for x in text:
  9.         keyChr = key[keyPos]
  10.         newChr = ord(x)
  11.         newChr = chr((newChr - ord(keyChr)) % 255)
  12.         decrypted += newChr
  13.         keyPos += 1
  14.         keyPos = keyPos % keylen
  15.     return decrypted
  16.  
  17. def encrypt(text, key):
  18.     keylen = len(key)
  19.     keyPos = 0
  20.     encrypted = ""
  21.     for x in text:
  22.         keyChr = key[keyPos]
  23.         newChr = ord(x)
  24.         newChr = chr((newChr + ord(keyChr)) % 255)
  25.         encrypted += newChr
  26.         keyPos += 1
  27.         keyPos = keyPos % keylen
  28.     return encrypted
  29.  
  30. def crack_key(raw, encrypted):
  31.     key = ''
  32.     index = 0
  33.     index_old = None
  34.  
  35.     while index < len(raw):
  36.         if index != index_old:
  37.             index_old = index
  38.         else:
  39.             print('No key chars found :(')
  40.             exit()
  41.         for char in printables:
  42.             decrypted = decrypt(encrypted, key + char)
  43.             if raw[index] == decrypted[index]:
  44.                 key += char
  45.                 index += 1
  46.                 print(f'Key: {key}')
  47.  
  48.                 if raw.strip() == decrypted.strip():
  49.                     return key
  50.                 break
  51.  
  52. def main():
  53.     raw = open('check.txt').read()
  54.     encrypted = open('out.txt').read()
  55.  
  56.     print(bar)
  57.     print('Starting Cracking!')
  58.     print(bar)
  59.  
  60.     key = crack_key(raw, encrypted)
  61.     print(bar)
  62.  
  63.     if key is not None:
  64.         print(f'Key Found: {key}')
  65.         encrypted = open('password.txt', 'r').read()
  66.         decrypted = decrypt(encrypted, key)
  67.         print(f'Decrypted: {decrypted.strip()}')
  68.     else:
  69.         print('Key Not Found :(')
  70.  
  71.     print(bar)
  72.  
  73.  
  74. main()
Advertisement
Add Comment
Please, Sign In to add comment