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

[BASH] cryptage de César

Doner_Kebab
Doner_Kebab
Niveau 10
25 octobre 2008 à 17:04:45

Bonjour,

Je fais appel à vous car j'essaie de coder un script bash qui permettrai de décrypter le cryptage de césar sur une phrase.
Pour ceux qui ne connaissent pas ce cryptage, par exemple, j'ai ce message : kpjkdkvkqp et comme clé 2, alors je vais prendre chaque lettres du mot, et les reculer de deux cases dans l'alphabet, ainsi k devient i, p devient n, etc ...

Pour ce qui est de mon problème, je n'ai pas de soucis au niveau du mot et de la clé à récupérer, mais je n'ai pas trouvé comment modifier toute la chaîne de caractère (avec des nombres ce n'est pas un soucis, mais avec des lettres, je sèche un peu) :(

Voilà, j'espère que vous pourrez m'aider. :)

surpuissant
surpuissant
Niveau 6
25 octobre 2008 à 18:39:54

Je ne suis pas sur de ce qu'est le code ascii, c'est l'équivalent d'une lettre en nombre ?
Si oui, c'est une bonne idée, mais quelle commande me permet de la trouver et quelle est la méthode de converstion entre ascii et alphabet (pour pouvoir convertir) ?

surpuissant
surpuissant
Niveau 6
25 octobre 2008 à 18:40:34

Oups, je me suis trompé de pseudo :hum: surpuissant = Doner_Kebab ^^'

Patatepoil
Patatepoil
Niveau 6
25 octobre 2008 à 19:38:24

un peu simple quand même comme cryptage

Si tu veux un idée un peu plus élaboré , tu boucle ta chaine pour prendre la valeur ascii de chaque caractère , tu multiplie par un nombre mystère en mémoire , et ensuite une fois que tu as ta chaine de nombre , la tu recule de nombres ou de 2 lettres.

C'est une idée comme ca , a toi de voir.

Doner_Kebab
Doner_Kebab
Niveau 10
25 octobre 2008 à 19:53:55

Merci pour ces idées, mais je fais des scripts bash comme ça et de ce fait, mes connaissances sont assez rudimentaires (c'est pour ça que je ne fais pas de cryptages compliqués vu que j'ai déjà beaucoup de mal avec césar :rire2: )
Tu me parles de boucler ma chaîne pour que toutes mes lettres prennent leurs valeurs, mais (j'espère ne pas trop en demander) tu pourrais me donner un exemple concret et m'expliquer, parce que là, je comprend pas :(

godrik
godrik
Niveau 30
26 octobre 2008 à 15:10:58

regarde la commande tr, elle doit pourvoir t'aider a faire ce que tu cherche

surpuissant
surpuissant
Niveau 6
26 octobre 2008 à 15:27:33

Merci, je vais chercher de ce coté :)

Sinon, je me suis renseigné sur l'ascii des lettres et j'ai donc fait ça:

sed "s/a/97/g" test >> test1
sed "s/b/98/g" test >> test1
sed "s/c/99/g" test >> test1
sed "s/d/100/g" test >> test1
sed "s/e/101/g" test >> test1
sed "s/f/102/g" test >> test1
sed "s/g/103/g" test >> test1
sed "s/h/104/g" test >> test1
sed "s/i/105/g" test >> test1
sed "s/j/106/g" test >> test1
sed "s/k/107/g" test >> test1
sed "s/l/108/g" test >> test1
sed "s/m/109/g" test >> test1
sed "s/n/110/g" test >> test1
sed "s/o/111/g" test >> test1
sed "s/p/112/g" test >> test1
sed "s/q/113/g" test >> test1
sed "s/r/114/g" test >> test1
sed "s/s/115/g" test >> test1
sed "s/t/116/g" test >> test1
sed "s/u/117/g" test >> test1
sed "s/v/118/g" test >> test1
sed "s/w/119/g" test >> test1
sed "s/x/120/g" test >> test1
sed "s/y/121/g" test >> test1
sed "s/z/122/g" test >> test1

Le problème, c'est que j'obtiens sur le mot "salut" quelque chose comme ça :

s97lutsalutsalutsalutsalutsalutsalutsalutsalutsalu
tsalutsa108utsalutsalutsalutsalutsalutsalut115alut
salu116sal117tsalutsalutsalutsalutsalut

Alors que je voudrais obtenir :
115 97 108 117 116

Donc si vous pouviez m'éclairer sur ce problème, ça m'aiderait beaucoup :svp:

surpuissant
surpuissant
Niveau 6
26 octobre 2008 à 21:28:05

J'ai finalement abandonné l'idée de convertir les lettre en ASCII et je me suis donc renseigné sur la commande tr.
Elle fonctionne très bien, mais j'ai malgrès tout quelques soucis:
comment arrêter le programme (mis à part en fermant la console --' ) et comment faire passer le résultat dans une variable :question:

Merci d'avance.

surpuissant
surpuissant
Niveau 6
26 octobre 2008 à 22:49:09

Problème réglé.

godrik
godrik
Niveau 30
26 octobre 2008 à 22:58:12

pour info, tu pourrais nous communiquer ton scipt bash final ?

surpuissant
surpuissant
Niveau 6
26 octobre 2008 à 23:17:48

Biensur, il n'est pas encore finit, la je mène un combat acharné avec les conditions et après j'aurais finit :-d

surpuissant
surpuissant
Niveau 6
27 octobre 2008 à 00:18:08

J'ai finit :content:

J'ai uploadé le script ici -> http://lightning.player.f.free.fr/Fichier%20texte_1.txt

Si vous avez des idées pour rendre le script plus propre, dites le moi :) .

iznoroot
iznoroot
Niveau 2
28 octobre 2008 à 22:42:52

tu peux faire beaucoup plus court
pas besoin de passer par 25 blocs if
utilise une variable ALPHA contenant les lettres de l'alphabet, et applique les transformations comme ceci
echo $PHRASE | tr [a-z] [${ALPHA:$POS:1}-za-z]

ptite explication: ${VAR:x:n} renvoie les n premiers caractères de $VAR, pris à partir de la position x. POS contient donc le décalage voulu pour la transformation.

surpuissant
surpuissant
Niveau 6
29 octobre 2008 à 13:04:39

OMG j'étais pas au courant :ouch:

En tout cas, merci pour cette info :-d

godrik
godrik
Niveau 30
29 octobre 2008 à 13:47:48

Merci iznoroot, je me doutais qu'il y avait une solution simple comme cela. J'allais la chercher quand j'aurais eu 5 minutes.

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