CHIFFRE DE VIGENÈRE

doudou3158 Messages postés 95 Date d'inscription mercredi 29 juin 2005 Statut Membre Dernière intervention 12 mai 2007 - 12 mai 2007 à 19:16
VladislavIV Messages postés 16 Date d'inscription vendredi 18 novembre 2005 Statut Membre Dernière intervention 1 mai 2007 - 15 mai 2007 à 09:31
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/41143-chiffre-de-vigenere

VladislavIV Messages postés 16 Date d'inscription vendredi 18 novembre 2005 Statut Membre Dernière intervention 1 mai 2007
15 mai 2007 à 09:31
Bien sûr !
sortie, i = "", 0 est une série d'affectations. J'aurai pu écrire
sortie = ""
i = 0

% est l'opérateur "modulo" : x % y renvoie le reste de la division de x par y.

chr( ( ord(caract) + ord(cle[i]) ) % 256 )

L'objectif est d'obtenir un caractère codé, en faisant la "somme" d'un caractère en clair et d'un caractère de la clé.
clair + clé = code
J'additionne donc les codes ascii, puis je fais % 256 pour obtenir une valeur entre 0 et 256 -> on retombe sur la table ascii. On peut alors utiliser chr() pour obtenir le caractère correspondant, codé.

En espérant être clair ;)
doudou3158 Messages postés 95 Date d'inscription mercredi 29 juin 2005 Statut Membre Dernière intervention 12 mai 2007
12 mai 2007 à 19:18
Dsl pour le double post, mais en faite ce qui me gene c'est le %256 je comprend pas ce qui vien faire la...
doudou3158 Messages postés 95 Date d'inscription mercredi 29 juin 2005 Statut Membre Dernière intervention 12 mai 2007
12 mai 2007 à 19:16
Pourrai-tu détailler ce passega stp :

sortie = sortie + chr((ord(caract) + ord(cle[i])) % 256)

Je sais que ord() retourne la valeur ascii d'un caractère et que chr() et sont contraire.

Et puis cette ligne ci aussi :

sortie, i = "", 0

Désolé je suis débutant en python..
Rejoignez-nous