(wie der eine oder andere vielleicht bemerkt hat).
Genaugenommen ist es ein Modul, das XOR importiert (das ist hier irgendwo im forum) und den pwg (selbstgemacht). Hier der Code:
Erstmal der PWG.py:
Code: Alles auswählen
#!/usr/bin/env python
import sys
from string import *
from random import randrange
def pwg(items, laenge):
if items == 'letters' or items == "l":
items = ascii_letters
if items == 'digits' or items == "d":
items = digits
if items == 'letters+digits' or items == 'digits+letters' or items == "d&l":
items = ascii_letters + digits
if items == 'all' or items == 'everything':
items = ascii_letters + digits + punctuation
itemslen, pwdlen = len(items), laenge
pwd = "".join(items[randrange(itemslen)] for i in range(pwdlen))
return pwd
Code: Alles auswählen
#!/usr/bin/env python
#erstellt ein passwort und verschluesselt mit diesem eine datei mithilfe des xor-algorythmus
#es wird one-time-pad benutzt, sprich, solange das passwort sicher uebertragen wird, ist der
#algorythmus nicht zu knacken
#todo: über die fibonacci-reihe oä störsignale einspielen
import pwg, xorc, os.path
def crypt(txt,pw):
dateilen = len(txt)
pw_lang = pwg.pwg("all", dateilen)
state2 = xorc.setup(pw)
crypted2 = xorc.xor(state2,pw_lang)
dir = os.path.join("~",".crypter", "a.051")
dir = os.path.expanduser (dir)
file = open(dir,"wb")
file.write(crypted2)
file.close()
state = xorc.setup(pw_lang)
crypted = xorc.xor(state,txt)
del pw
return crypted
def encrypt(txt,pw):
dir = os.path.join("~",".crypter", "a.051")
dir = os.path.expanduser (dir)
file = open(dir,"rb")
pw2 = file.read()
decstate2 = xorc.setup(pw)
encrypted2 = xorc.xor(decstate2,pw2)
decstate = xorc.setup(encrypted2)
encrypted = xorc.xor(decstate,txt)
return encrypted
zerreißt es biite in der luft
