CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[Python] Codage de Vigenère.

Naked-_-Snake
Naked-_-Snake
Niveau 10
22 décembre 2013 à 16:20:10

Bonjour :)

J'essaye de programmer un algorithme sur Python permettant de coder un message grâce au codage de Vigenère. Le problème, c'est que avec une clé à plusieurs lettres, l'algorithme me renvoie le texte codé seulement grâce à la première lettre de la clé sans utiliser les autres. J'obtiens donc un texte codé avec le codage de César... alors que je fais parcourir tous les caractères de la clé ! :(
Pouvez vous m'aider ?

Merci.

projetkick
projetkick
Niveau 7
22 décembre 2013 à 17:28:12

Sans code ça va être dur...

Naked-_-Snake
Naked-_-Snake
Niveau 10
22 décembre 2013 à 17:36:21

Ah oui je l'ai oublié :hum:

def fct32(t,c):
L=[]
M=[]
N=[c]
while len(c)<len(t):
N+=[c]
break
for i in "".join(N):
d=Alphabet.find(i)
for j in t:
if Alphabet.find(j)+d>25:
L+=[Alphabet.find(j)+d-26]
else:
L+=[Alphabet.find(j)+d]
break
for k in range (0,len(L)):
for l in Alphabet:
if L[k]==Alphabet.find(l):
M+=[l]
return ("".join(M))

Après il y a peut être plus simple, je l'ai fais avec ce que je connais.

papy386
papy386
Niveau 10
23 décembre 2013 à 02:27:34

Bonjour

Si j'ai bien compris le code Vigenère te donne en gros le codage d'une lettre du genre codage = Vigenère[lettre];

Donc justement pourquoi tu fait pas sa?

Naked-_-Snake
Naked-_-Snake
Niveau 10
23 décembre 2013 à 11:30:20

Pour le codage de Vigenère, tu prends un mot et un clé et tu code ton mot grâce à ta clé, la clé étant composé elle-même de lettres.
En fait, tu regardes le décalage de la lettre a sur la première lettre de ta clé pour coder la première lettre de ton texte, puis tu regardes le décalage du a sur la seconde lettre de ta clé pour coder la deuxième lettre de ton texte...
En fin de compte, chaque lettre est codée différemment.
Mais c'est bon j'ai réussi, mon programme fonctionne à présent.
Le voici, certes un peu lourd mais je ne connais pas toutes les fonctions de Python.
def fct32(t,c):
L=[]
C=[]
T=[]
M=[]
for i in c:
C+=[Alphabet.find(i)]
for j in t:
T+=[Alphabet.find(j)]
while len(C)<len(T):
for k in c:
C+=[Alphabet.find(k)]
for l in range (0,len(C)):
for m in range (0,len(T)):
if l==m:
if C[l]+T[m]>25:
L+=[C[l]+T[m]-26]
else:
L+=[C[l]+T[m]]
for n in range (0,len(L)):
for o in Alphabet:
if L[n]==Alphabet.find(o):
M+=[o]
return("".join(M))

papy386
papy386
Niveau 10
24 décembre 2013 à 04:53:55

ET bien c'est le principal, bien joué.

Naked-_-Snake
Naked-_-Snake
Niveau 10
24 décembre 2013 à 13:31:19

Merci :-)

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment