Cryptage XOR - besoin d'aide URGENT !!

Slmdb Messages postés 1 Date d'inscription mercredi 11 janvier 2017 Statut Membre Dernière intervention 11 janvier 2017 - 11 janv. 2017 à 14:07
hbouia Messages postés 112 Date d'inscription mardi 30 juillet 2013 Statut Membre Dernière intervention 22 novembre 2022 - 11 janv. 2017 à 19:07
Bonjour,
Voila, j'ai un miniprojet à rendre pour ce vendredi et je suis un peu dans la moise !! Je n'arrive pas à finir mon cryptage XOR, j'ai fais le gros de mon programme mais je ne vois pas ce qui va pas et comment finaliser ! Si quelqu'un pourrait m'aider ceci me sera d'une aide très très précieuse. Voici mon programme :
 
#---importations des modules---#
from math import *
from random import randrange

#---Définition du XOR---#
def xor(a,b):
    return( a and not(b)) or (not(a) and b)

    
#---Définition du GRANDXOR---#
def GRANDXOR(Binaire,Binairedelacle):
    for loop in range(7):
        z = xor(Binairedelacle[loop], Binaire[loop])
        Binaire[loop] = z
    return Binaire


#---Champ de texte---#
Texteacrypter = input()
clebinaire = input()

#---Liste des lettres à crypter---#
liste = list(Texteacrypter)
tailledelaliste = len(liste)
ASCII=[]
Binaire=[]
ASCIIdelacle=[]
Binairedelacle=[]
Messageacrypter=[]
Codebinaire=[]

#---1ère étape : codage en code ASCII---#
for car in Texteacrypter:
   e=ord(car)
   ASCII.append(e)   
   
for car in clebinaire:
   f=ord(car)
   ASCIIdelacle.append(f)

print('ASCII : ', ASCII)
print('ASCII de la clé :', ASCIIdelacle)

#---2nde étape : codage en binaire---#
for car in ASCII:
    c=bin(car)
    Binaire.append(c)
    
for car in ASCIIdelacle:
    d=bin(car)
    Binairedelacle.append(d)
    
print('Binaire :', Binaire)
print('Binaire de la cle', Binairedelacle)

#---Lirelaliste---#
for compteur in range((len(Binaire))):
    Codebinaire=[]
    Codebinaire=[compteur%(len(Binairedelacle))]
print(Codebinaire)

#---Utilisation du GRANDXOR---#
Xordumessage = GRANDXOR(Binaire,Binairedelacle)
print(Xordumessage)
A voir également:

1 réponse

hbouia Messages postés 112 Date d'inscription mardi 30 juillet 2013 Statut Membre Dernière intervention 22 novembre 2022 12
11 janv. 2017 à 19:07
Bonjour,

1) La ligne 59 n'a pas lieu d'être.
2) Attention à l'utilisation de la fonction bin (par exemple bin(2) et bin(66) n'ont pas le même nombre de caractères) :
bin(2)='0b10'
bin(66)='0b1000010'

Un conseil : on peut convertir un nombre en base 2 sur 8 digits (suffisants pour les caractères ASCII).

Exemple (mais attention à l'ordre des chiffres) :
def Convert_Base2(n):
resultat=[]
while n>0:
resultat.append(n%2)
n=n//2
return resultat+[0]*(8-len(resultat))


Bon courage !
hb
0
Rejoignez-nous