+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,7 +39,7 @@ for i in range(0, LEVEL):
|
||||||
ROTOR.append( shuffle( SIGMA, KEY[i]) ); # on creer le rotor et le melange suivant la cle
|
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
|
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
|
# ECRITURE FICHIER
|
||||||
outFile = open(path + '/../bucket-file', 'w');
|
outFile = open(path + '/../bucket-file', 'w');
|
||||||
|
|
|
@ -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.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
|
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
|
# ECRITURE FICHIER
|
||||||
outFile = open(path + '/../bucket-file', 'w');
|
outFile = open(path + '/../bucket-file', 'w');
|
||||||
outFile.write( M.encode('utf-8') );
|
outFile.write( M.encode('utf-8') );
|
||||||
|
|
|
@ -25,7 +25,7 @@ def getConf(pPath):
|
||||||
except ValueError:
|
except ValueError:
|
||||||
pass;
|
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;
|
return conf;
|
||||||
else:
|
else:
|
||||||
return False;
|
return False;
|
||||||
|
@ -43,11 +43,11 @@ def sendMail(pConf, pPass, pTo, pSubject, pMessage):
|
||||||
|
|
||||||
pMsg.attach( MIMEText(pMessage.encode('utf-8')) );
|
pMsg.attach( MIMEText(pMessage.encode('utf-8')) );
|
||||||
|
|
||||||
srv.ehlo();
|
srv.ehlo_or_helo_if_needed();
|
||||||
|
|
||||||
if( srv.has_extn('STARTTLS') ):
|
if( srv.has_extn('STARTTLS') ):
|
||||||
srv.starttls();
|
srv.starttls();
|
||||||
srv.ehlo();
|
srv.ehlo_or_helo_if_needed();
|
||||||
|
|
||||||
srv.login(pConf['login'], pPass);
|
srv.login(pConf['login'], pPass);
|
||||||
srv.sendmail( pConf['mail_address'], pTo, pMsg.as_string() );
|
srv.sendmail( pConf['mail_address'], pTo, pMsg.as_string() );
|
||||||
|
@ -178,29 +178,37 @@ def decodeChar(pChar, pSIGMA, pROTOR):
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# fonction qui encode une chaine
|
# fonction qui encode une chaine (pTimes fois)
|
||||||
def encodeStr(pM, pSIGMA, pROTOR):
|
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 = '';
|
encodedStr = '';
|
||||||
for c in pM:
|
for c in tmp: # pour chaque caractère de tmp
|
||||||
encodedStr += encodeChar(c, pSIGMA, pROTOR);
|
encodedStr += encodeChar(c, pSIGMA, pROTOR); # on encode le caractère courant
|
||||||
rotateRotorsClockwise(pROTOR); # on pivote les rotors dans le sens horaire
|
rotateRotorsClockwise(pROTOR); # on pivote les rotors dans le sens horaire
|
||||||
|
tmp = encodedStr; # tmp vaut maintenant la valeur déjà codée
|
||||||
|
|
||||||
return encodedStr;
|
return encodedStr;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# fonction qui decode une chaine
|
# fonction qui decode une chaine (pTimes fois)
|
||||||
def decodeStr(pM, pSIGMA, pROTOR):
|
def decodeStr(pM, pSIGMA, pROTOR, pTimes):
|
||||||
decodedStr = '';
|
tmp = pM;
|
||||||
|
|
||||||
# decalage des rotor en position de fin d'encodage (taille du message -1)
|
# 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);
|
rotateRotorsClockwise(pROTOR);
|
||||||
|
|
||||||
# pour chaque caractere en partant du dernier
|
for t in range(0,pTimes):
|
||||||
for c in pM[::-1]:
|
decodedStr = '';
|
||||||
|
for c in tmp[::-1]: # pour chaque caractere en partant du dernier
|
||||||
decodedStr += decodeChar(c, pSIGMA, pROTOR); # on lit le caractere
|
decodedStr += decodeChar(c, pSIGMA, pROTOR); # on lit le caractere
|
||||||
rotateRotorsAnticlockwise(pROTOR); # on tourne les rotors dans le sens inverse
|
rotateRotorsAnticlockwise(pROTOR); # on tourne les rotors dans le sens inverse
|
||||||
|
tmp = decodedStr[::-1];
|
||||||
|
|
||||||
# on retourne la chaine
|
# on retourne la chaine
|
||||||
return decodedStr[::-1];
|
return decodedStr[::-1];
|
Binary file not shown.
|
@ -41,6 +41,9 @@ OPTIONS
|
||||||
send
|
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
|
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
|
AUTHOR
|
||||||
Written by Adrien MARQUES.
|
Written by Adrien MARQUES.
|
||||||
|
|
||||||
|
|
|
@ -22,5 +22,6 @@ if( body != '' ):
|
||||||
outFile = open(path + '/../bucket-file', 'w');
|
outFile = open(path + '/../bucket-file', 'w');
|
||||||
outFile.write( body );
|
outFile.write( body );
|
||||||
outFile.close();
|
outFile.close();
|
||||||
|
print "Fini!";
|
||||||
else:
|
else:
|
||||||
print "Erreur";
|
print "Erreur";
|
Loading…
Reference in New Issue