+Complexité crypt/decrypt

This commit is contained in:
xdrm-brackets 2015-05-24 19:47:53 +02:00
parent 6bd22539d5
commit 760f196702
7 changed files with 34 additions and 23 deletions

View File

@ -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

View File

@ -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');

View File

@ -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') );

View File

@ -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):
encodedStr = ''; tmp = pM; # tmp contient le mot en cours [initial, initial codé 1 fois, ...]
for c in pM:
encodedStr += encodeChar(c, pSIGMA, pROTOR); for t in range(0, pTimes): # pour chaque fois, on encode le message
rotateRotorsClockwise(pROTOR); # on pivote les rotors dans le sens horaire 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; 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 = '';
decodedStr += decodeChar(c, pSIGMA, pROTOR); # on lit le caractere for c in tmp[::-1]: # pour chaque caractere en partant du dernier
rotateRotorsAnticlockwise(pROTOR); # on tourne les rotors dans le sens inverse 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 # on retourne la chaine
return decodedStr[::-1]; return decodedStr[::-1];

Binary file not shown.

View File

@ -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.

View File

@ -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";