From 451d9970f0cb6e59c24f9481f87bdc58b596a7eb Mon Sep 17 00:00:00 2001 From: Rnhmjoj Date: Fri, 15 Feb 2013 18:48:43 +0100 Subject: [PATCH] Correzione dell'inizzializzazione del modulo --- crittografia/__init__.py | 3 ++- crittografia/alfabeto.py | 5 +++-- crittografia/unicode.py | 7 +++++-- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/crittografia/__init__.py b/crittografia/__init__.py index 761ad2a..563a44f 100644 --- a/crittografia/__init__.py +++ b/crittografia/__init__.py @@ -1,2 +1,3 @@ from .alfabeto import * -from .unicode import * \ No newline at end of file +from .unicode import * +from .numeri import * \ No newline at end of file diff --git a/crittografia/alfabeto.py b/crittografia/alfabeto.py index fc88e1b..f44a7ce 100644 --- a/crittografia/alfabeto.py +++ b/crittografia/alfabeto.py @@ -6,8 +6,9 @@ ordinale = dict([(k,i) for i,k in enumerate(alfabeto)]) class codifica: else: self.stringa = valore def rot13(self): rotazione = str.maketrans("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", "nopqrstuvwxyzabcdefghijklmNOPQRSTUVWXYZABCDEFGHIJKLM") return str.translate(self.stringa, rotazione) def vigenère(self, verme): self.stringa = self.stringa.lower().replace(" ","") cifrata = "" for i in range(len(self.stringa)): cifrata += alfabeto[(ordinale[self.stringa[i]] + ordinale[verme[i % len(verme)]]) % 26] return cifrata def gödel(self, primo): - self.stringa = self.stringa.lower().replace(" ","") cifrata = 1 sequenza = primi.lista(primo, len(self.stringa)) for i in range(len(self.stringa)): cifrata *= sequenza[i]**(ordinale[self.stringa[i]] + 1) return cifrata def vernam(self): - self.stringa = self.stringa.lower().replace(" ","") cifrata = "" pad = generatore.onetimepad(len(self.stringa)) for i in range(len(self.stringa)): cifrata += alfabeto[(ordinale[self.stringa[i]] + pad[i]) % 26] return cifrata, pad class decodifica: + self.stringa = self.stringa.lower().replace(" ","") cifrata = 1 sequenza = primi.lista(primo, len(self.stringa)) for i in range(len(self.stringa)): cifrata *= sequenza[i]**(ordinale[self.stringa[i]] + 1) return cifrata def vernam(self, pad=()): + self.stringa = self.stringa.lower().replace(" ","") cifrata = "" + if pad is (): pad = generatore.onetimepad(len(self.stringa)) for i in range(len(self.stringa)): cifrata += alfabeto[(ordinale[self.stringa[i]] + pad[i]) % 26] return cifrata, pad class decodifica: def __init__(self, valore): valore = str(valore) if valore.isnumeric(): self.numero = int(valore) diff --git a/crittografia/unicode.py b/crittografia/unicode.py index 7501f87..3f88f1b 100644 --- a/crittografia/unicode.py +++ b/crittografia/unicode.py @@ -1,9 +1,12 @@ -from crittografia.numeri import * max = 2**(32) class codifica: +from crittografia.numeri import * max = 2**(16) class codifica: def __init__(self, valore): valore = str(valore) if valore.isnumeric(): self.numero = int(valore) else: self.stringa = valore - def rot13(self): rotazione = str.maketrans("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", "nopqrstuvwxyzabcdefghijklmNOPQRSTUVWXYZABCDEFGHIJKLM") return str.translate(self.stringa, rotazione) def vigenère(self, verme): cifrata = "" for i in range(len(self.stringa)): cifrata += chr((ord(self.stringa[i]) + ord(verme[i % len(verme)])) % max) return cifrata def gödel(self, primo): cifrata = 1 sequenza = primi.lista(primo, len(self.stringa)) for i in range(len(self.stringa)): cifrata *= sequenza[i]**(ord(self.stringa[i]) + 1) return cifrata def vernam(self): cifrata = "" pad = generatore.onetimepad(len(self.stringa)) for i in range(len(self.stringa)): cifrata += chr((ord(self.stringa[i]) + pad[i]) % max) return cifrata, pad class decodifica: + def rot13(self): rotazione = str.maketrans("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", "nopqrstuvwxyzabcdefghijklmNOPQRSTUVWXYZABCDEFGHIJKLM") return str.translate(self.stringa, rotazione) def vigenère(self, verme): cifrata = "" for i in range(len(self.stringa)): cifrata += chr((ord(self.stringa[i]) + ord(verme[i % len(verme)])) % max) return cifrata def gödel(self, primo): cifrata = 1 sequenza = primi.lista(primo, len(self.stringa)) for i in range(len(self.stringa)): cifrata *= sequenza[i]**(ord(self.stringa[i]) + 1) return cifrata def vernam(self, pad=()): cifrata = "" + if pad is (): + pad = generatore.onetimepad(len(self.stringa)) + print(pad) for i in range(len(self.stringa)): cifrata += chr((ord(self.stringa[i]) + pad[i]) % max) return cifrata, pad class decodifica: def __init__(self, valore): valore = str(valore) if valore.isnumeric(): self.numero = int(valore)