Bonjour,
Je vous propose un nouvel élément à utiliser : (Dé)Chiffrement par substitution
(Dé)Chiffrement par substitution avec interface graphique
python3-tkinter requis
Qu'en pensez-vous ?
Bonjour,
Je vous propose un nouvel élément à utiliser : (Dé)Chiffrement par substitution
(Dé)Chiffrement par substitution avec interface graphique
python3-tkinter requis
Qu'en pensez-vous ?
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 ?
ChiffrementParTranslation.py
Bonjour,
J'ai lu en diagonale, mais une des premières fonctions comme supplement par ex. est assez inefficace
qui pourrait être remplacé par :Envoyé par code du PO
Je ne regarde pas la suite car pas le temps, mais il y a sûrement pas mal de corrections à faire à mon avis...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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).
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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)
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager