Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- printables = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&\'()*+,-./:;?@[\\]^_`{|}~ \t\n\r\x0b\x0c'
- bar = '_____________________________________\n'
- def decrypt(text, key):
- keylen = len(key)
- keyPos = 0
- decrypted = ""
- for x in text:
- keyChr = key[keyPos]
- newChr = ord(x)
- newChr = chr((newChr - ord(keyChr)) % 255)
- decrypted += newChr
- keyPos += 1
- keyPos = keyPos % keylen
- return decrypted
- def encrypt(text, key):
- keylen = len(key)
- keyPos = 0
- encrypted = ""
- for x in text:
- keyChr = key[keyPos]
- newChr = ord(x)
- newChr = chr((newChr + ord(keyChr)) % 255)
- encrypted += newChr
- keyPos += 1
- keyPos = keyPos % keylen
- return encrypted
- def crack_key(raw, encrypted):
- key = ''
- index = 0
- index_old = None
- while index < len(raw):
- if index != index_old:
- index_old = index
- else:
- print('No key chars found :(')
- exit()
- for char in printables:
- decrypted = decrypt(encrypted, key + char)
- if raw[index] == decrypted[index]:
- key += char
- index += 1
- print(f'Key: {key}')
- if raw.strip() == decrypted.strip():
- return key
- break
- def main():
- raw = open('check.txt').read()
- encrypted = open('out.txt').read()
- print(bar)
- print('Starting Cracking!')
- print(bar)
- key = crack_key(raw, encrypted)
- print(bar)
- if key is not None:
- print(f'Key Found: {key}')
- encrypted = open('password.txt', 'r').read()
- decrypted = decrypt(encrypted, key)
- print(f'Decrypted: {decrypted.strip()}')
- else:
- print('Key Not Found :(')
- print(bar)
- main()
Advertisement
Add Comment
Please, Sign In to add comment