Cryptage XOR - besoin d'aide URGENT !!

Signaler
Messages postés
1
Date d'inscription
mercredi 11 janvier 2017
Statut
Membre
Dernière intervention
11 janvier 2017
-
Messages postés
110
Date d'inscription
mardi 30 juillet 2013
Statut
Membre
Dernière intervention
27 avril 2021
-
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

Messages postés
110
Date d'inscription
mardi 30 juillet 2013
Statut
Membre
Dernière intervention
27 avril 2021
12
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