+Complexité crypt/decrypt
This commit is contained in:
parent
6bd22539d5
commit
760f196702
|
@ -1 +1 @@
|
|||
|
||||
S6Eî7777777777777777777777777777777777777777777fâàOaOàâf7777777777777777777777777777777777777777777îE6SS6Eî7777777777777777777777777777777777777777777fâàOaOàâf7777777777777777777777777777777777777777777îE6SS6Eî7777777777777777777777777777777777777777777fâàOaOàâf7777777777777777777777777777777777777777777îE6SS6Eî7777777777777777777777777777777777777777777fâàOaOàâf7777777777777777777777777777777777777777777îE6SS6Eî7777777777777777777777777777777777777777777fâàOaOàâf7777777777777777777777777777777777777777777îE6SS6Eî7777777777777777777777777777777777777777777fâàOaOàâf7777777777777777777777777777777777777777777îE6SS6Eî7777777777777777777777777777777777777777777fâàOaOàâf7777777777777777777777777777777777777777777îE6SS6Eî7777777777777777777777777777777777777777777fâàOaOàâf7777777777777777777777777777777777777777777îE6SS6Eî7777777777777777777777777777777777777777777fâàOaOàâf7777777777777777777777777777777777777777777îE6SS6Eî7777777777777777777777777777777777777777777fâàOaOàâf7777777777777777777777777777777777777777777îE6SS6Eî7777777777777777777777777777777777777777777fâàOaOàâf7777777777777777777777777777777777777777777îE6SS6Eî7777777777777777777777777777777777777777777fâàOaOàâf7777777777777777777777777777777777777777777îE6SS6Eî7777777777777777777777777777777777777777777fâàOaOàâf7777777777777777777777777777777777777777777îE6SS6Eî7777777777777777777777777777777777777777777fâàOaOàâf7777777777777777777777777777777777777777777îE6SS6Eî7777777777777777777777777777777777777777777fâàOaOàâf7777777777777777777777777777777777777777777îE6SS6Eî7777777777777777777777777777777777777777777fâàOaOàâf7777777777777777777777777777777777777777777îE6SS6Eî7777777777777777777777777777777777777777777fâàOaOàâf7777777777777777777777777777777777777777777îE6SS6Eî7777777777777777777777777777777777777777777fâàOaOàâf7777777777777777777777777777777777777777777îE6SS6Eî7777777777777777777777777777777777777777777fâàOaOàâf7777777777777777777777777777777777777777777îE6SS6Eî7777777777777777777777777777777777777777777fâàOaOàâf7777777777777777777777777777777777777777777îE6SS6Eî7777777777777777777777777777777777777777777fâàOaOàâf7777777777777777777777777777777777777777777îE6SS6Eî7777777777777777777777777777777777777777777fâàOaOàâf7777777777777777777777777777777777777777777îE6SS6Eî7777777777777777777777777777777777777777777fâàOaOàâf7777777777777777777777777777777777777777777îE6SS6Eî7777777777777777777777777777777777777777777fâàOaOàâf7777777777777777777777777777777777777777777îE6SS6Eî7777777777777777777777777777777777777777777fâàOaOàâf7777777777777777777777777777777777777777777îE6SS6Eî7777777777777777777777777777777777777777777fâàOaOàâf7777777777777777777777777777777777777777777îE6SS6Eî7777777777777777777777777777777777777777777fâàOaOàâf7777777777777777777777777777777777777777777îE6SS6Eî7777777777777777777777777777777777777777777fâàOaOàâf7777777777777777777777777777777777777777777îE6SS6Eî7777777777777777777777777777777777777777777fâàOaOàâf7777777777777777777777777777777777777777777îE6SS6Eî7777777777777777777777777777777777777777777fâàOaOàâf7777777777777777777777777777777777777777777îE6SS6Eî7777777777777777777777777777777777777777777fâàOaOàâf7777777777777777777777777777777777777777777îE6SS6Eî7777777777777777777777777777777777777777777fâàOaOàâf7777777777777777777777777777777777777777777îE6SS6Eî7777777777777777777777777777777777777777777fâàOaOàâf7777777777777777777777777777777777777777777- .77. -7777777777777777777777777777777777777777777fâçRdRçâf7777777777777777777777777777777777777777777îE6cc6Eî7777777777777777777777777777777777777777777fâà-7
|
|
@ -39,9 +39,9 @@ for i in range(0, LEVEL):
|
|||
ROTOR.append( shuffle( SIGMA, KEY[i]) ); # on creer le rotor et le melange suivant la cle
|
||||
ROTOR[0].append( ROTOR[i+1][0] ); # on enregistre la l&ettre en premiere position dans la premiere entree du rotor
|
||||
|
||||
M = decodeStr(m, SIGMA, ROTOR); # DECODAGE DU MESSAGE
|
||||
M = decodeStr(m, SIGMA, ROTOR, 1); # DECODAGE DU MESSAGE (dernier arg = nombre de fois)
|
||||
|
||||
# ECRITURE FICHIER
|
||||
outFile = open(path + '/../bucket-file', 'w');
|
||||
outFile.write( M.encode('utf-8') );
|
||||
outFile.close();
|
||||
outFile.close();
|
||||
|
|
|
@ -35,8 +35,7 @@ for i in range(0, LEVEL):
|
|||
ROTOR.append( shuffle( SIGMA, KEY[i]) ); # on creer le rotor et le melange suivant la cle
|
||||
ROTOR[0].append( ROTOR[i+1][0] ); # on enregistre la l&ettre en premiere position dans la premiere entree du rotor
|
||||
|
||||
M = encodeStr(m, SIGMA, ROTOR); # ENCODAGE DU MESSAGE
|
||||
|
||||
M = encodeStr(m, SIGMA, ROTOR, 1); # ENCODAGE DU MESSAGE (dernier arg = nombre de fois)
|
||||
# ECRITURE FICHIER
|
||||
outFile = open(path + '/../bucket-file', 'w');
|
||||
outFile.write( M.encode('utf-8') );
|
||||
|
|
|
@ -25,7 +25,7 @@ def getConf(pPath):
|
|||
except ValueError:
|
||||
pass;
|
||||
|
||||
if( len(conf) == 6 ): # si le fichier de config est bien récupéré et qu'il est complet
|
||||
if( len(conf) >= 6 ): # si le fichier de config est bien récupéré et qu'il est complet
|
||||
return conf;
|
||||
else:
|
||||
return False;
|
||||
|
@ -43,11 +43,11 @@ def sendMail(pConf, pPass, pTo, pSubject, pMessage):
|
|||
|
||||
pMsg.attach( MIMEText(pMessage.encode('utf-8')) );
|
||||
|
||||
srv.ehlo();
|
||||
srv.ehlo_or_helo_if_needed();
|
||||
|
||||
if( srv.has_extn('STARTTLS') ):
|
||||
srv.starttls();
|
||||
srv.ehlo();
|
||||
srv.ehlo_or_helo_if_needed();
|
||||
|
||||
srv.login(pConf['login'], pPass);
|
||||
srv.sendmail( pConf['mail_address'], pTo, pMsg.as_string() );
|
||||
|
@ -178,29 +178,37 @@ def decodeChar(pChar, pSIGMA, pROTOR):
|
|||
|
||||
|
||||
|
||||
# fonction qui encode une chaine
|
||||
def encodeStr(pM, pSIGMA, pROTOR):
|
||||
encodedStr = '';
|
||||
for c in pM:
|
||||
encodedStr += encodeChar(c, pSIGMA, pROTOR);
|
||||
rotateRotorsClockwise(pROTOR); # on pivote les rotors dans le sens horaire
|
||||
# fonction qui encode une chaine (pTimes fois)
|
||||
def encodeStr(pM, pSIGMA, pROTOR, pTimes):
|
||||
tmp = pM; # tmp contient le mot en cours [initial, initial codé 1 fois, ...]
|
||||
|
||||
for t in range(0, pTimes): # pour chaque fois, on encode le message
|
||||
encodedStr = '';
|
||||
for c in tmp: # pour chaque caractère de tmp
|
||||
encodedStr += encodeChar(c, pSIGMA, pROTOR); # on encode le caractère courant
|
||||
rotateRotorsClockwise(pROTOR); # on pivote les rotors dans le sens horaire
|
||||
tmp = encodedStr; # tmp vaut maintenant la valeur déjà codée
|
||||
|
||||
return encodedStr;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# fonction qui decode une chaine
|
||||
def decodeStr(pM, pSIGMA, pROTOR):
|
||||
decodedStr = '';
|
||||
# fonction qui decode une chaine (pTimes fois)
|
||||
def decodeStr(pM, pSIGMA, pROTOR, pTimes):
|
||||
tmp = pM;
|
||||
|
||||
# decalage des rotor en position de fin d'encodage (taille du message -1)
|
||||
for r in pM[1:]:
|
||||
for r in range(1, pTimes*len(pM)):
|
||||
rotateRotorsClockwise(pROTOR);
|
||||
|
||||
# pour chaque caractere en partant du dernier
|
||||
for c in pM[::-1]:
|
||||
decodedStr += decodeChar(c, pSIGMA, pROTOR); # on lit le caractere
|
||||
rotateRotorsAnticlockwise(pROTOR); # on tourne les rotors dans le sens inverse
|
||||
|
||||
for t in range(0,pTimes):
|
||||
decodedStr = '';
|
||||
for c in tmp[::-1]: # pour chaque caractere en partant du dernier
|
||||
decodedStr += decodeChar(c, pSIGMA, pROTOR); # on lit le caractere
|
||||
rotateRotorsAnticlockwise(pROTOR); # on tourne les rotors dans le sens inverse
|
||||
tmp = decodedStr[::-1];
|
||||
|
||||
# on retourne la chaine
|
||||
return decodedStr[::-1];
|
Binary file not shown.
|
@ -41,6 +41,9 @@ OPTIONS
|
|||
send
|
||||
open an interface to choose your receiver, your subjet and type your email password then send an email containing the content of the bucket file
|
||||
|
||||
receive
|
||||
get your last ENIGMAIL's email from your mailbox and put its content to the bucket file
|
||||
|
||||
AUTHOR
|
||||
Written by Adrien MARQUES.
|
||||
|
||||
|
|
|
@ -22,5 +22,6 @@ if( body != '' ):
|
|||
outFile = open(path + '/../bucket-file', 'w');
|
||||
outFile.write( body );
|
||||
outFile.close();
|
||||
print "Fini!";
|
||||
else:
|
||||
print "Erreur";
|
Loading…
Reference in New Issue