Slmdb
Messages postés1Date d'inscriptionmercredi 11 janvier 2017StatutMembreDernière intervention11 janvier 2017
-
11 janv. 2017 à 14:07
hbouia
Messages postés112Date d'inscriptionmardi 30 juillet 2013StatutMembreDernière intervention22 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)
hbouia
Messages postés112Date d'inscriptionmardi 30 juillet 2013StatutMembreDernière intervention22 novembre 202212 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))