Téléchargé 8 fois
Vote des utilisateurs
0
0
Détails
Licence : Non renseignée
Mise en ligne le 28 septembre 2022
Plate-formes :
Linux, Windows
Langue : Français
Référencé dans
Navigation
(Dé)Chiffrement par substitution
(Dé)Chiffrement par substitution
(Dé)Chiffrement par substitution avec interface graphique
python3-tkinter requis
python3-tkinter requis
Merci pour ce code qui me permet de présenter mon deuxième "programme" en Python, et donc mon deuxième message (eh oui je suis toujours débutant sur ce langage!).
Je trouve que ton code est très compact et propre avec une intégration graphique que, personnellement, je recherchais pour me faire la main.
Je te propose cette amélioration qui complexifie le décryptage mais pas ton algorithme compact.
Dis moi ce que tu en penses ?
[ATTACH]654504d1/a/a/a" />
Je trouve que ton code est très compact et propre avec une intégration graphique que, personnellement, je recherchais pour me faire la main.
Je te propose cette amélioration qui complexifie le décryptage mais pas ton algorithme compact.
Dis moi ce que tu en penses ?
[ATTACH]654504d1/a/a/a" />
Bonjour,
J'ai lu en diagonale, mais une des premières fonctions comme supplement par ex. est assez inefficace
qui pourrait être remplacé par :
Je ne regarde pas la suite car pas le temps, mais il y a sûrement pas mal de corrections à faire à mon avis...
J'ai lu en diagonale, mais une des premières fonctions comme supplement par ex. est assez inefficace
Envoyé par code du PO
Code : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 | import string # Alphabet en lettres minuscules et majuscule alph = set(string.ascii_lowercase + string.ascii_uppercase + " ") def supplement(alphabet: set[str], verif: str): non_alphabet_chars = set() for x in verif: if x not in alphabet: non_alphabet_chars.add(x) return ''.join(non_alphabet_chars) |
Merci Fred1599 pour le temps passé pour ce retour : effectivement, je ne connais pas les subtilités de la bibliothèque "string".
J'ai testé ta proposition et cela ne peut convenir : en effet, visiblement, la fonction "set" permet d'affecter dans un ordre 'aléatoire' les arguments en entrée de manière unique.
Comme la finalité est une substitution, l'ordre a son importance pour pouvoir crypter et décrypter le message (substitution d'un caractère ordonné par un autre tout aussi ordonné dans l'alphabet global=alphabet initial+les caractères uniques et ordonnés n'existant pas dans la version initiale de l'alphabet).
J'ai testé ta proposition et cela ne peut convenir : en effet, visiblement, la fonction "set" permet d'affecter dans un ordre 'aléatoire' les arguments en entrée de manière unique.
Comme la finalité est une substitution, l'ordre a son importance pour pouvoir crypter et décrypter le message (substitution d'un caractère ordonné par un autre tout aussi ordonné dans l'alphabet global=alphabet initial+les caractères uniques et ordonnés n'existant pas dans la version initiale de l'alphabet).
Bonjour,
Dans ce cas on utilise set pour juste vérifier la présence d'un caractère,
ça reste beaucoup plus efficace que la proposition du code d'origine.
Dans ce cas on utilise set pour juste vérifier la présence d'un caractère,
Code : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | import string alph = string.ascii_lowercase + string.ascii_uppercase + " " def supplement(alphabet: str, verif: str): non_alphabet_chars = [] seen_chars = set() for x in verif: if x not in alphabet and x not in seen_chars: non_alphabet_chars.append(x) seen_chars.add(x) return ''.join(non_alphabet_chars) |
Developpez.com décline toute responsabilité quant à l'utilisation des différents éléments téléchargés.