Hey
J'essaie de créer une fonction en JavaScript pour crypter un texte grâce à une
J'ai fait un code (pas optimisé du tout, je vous l'accorde) qui ressemble à ça. Seulement, ce code rencontre un problème.
Admettons que je tape le mot "test". Le code remplace lettre par lettre mais ne s'arrête pas à un seul changement:
Le problème est donc que le code s'exécute en boucle. Alors là certains d'entre vous me diront peut-être
Voici ce que je cherche à faire comprendre au code si je rentrais le mot test:
Je sais que mon code est incorrect, mais je vous laisse une trace de ce que j'ai fait:
Comment arriver à mon objectif ? Le but serait d'utiliser les bases de JS sans trop rentrer dans la complexité.
Facultatif: Si vous savez compiler un peu le code (du genre var alphabet = "abcdefghijklmnopqrstuvw") en restant simple ce serait parfait
S'il vous faut plus d'informations, n'hésitez pas à me les demander
Merci d'avance
Wikipedia a dit:Méthode de chiffrement très simple utilisée par Jules César dans ses correspondances secrètes. Le texte chiffré s'obtient en remplaçant chaque lettre du texte clair original par une lettre à distance fixe, toujours du même côté, dans l'ordre de l'alphabet.
J'ai fait un code (pas optimisé du tout, je vous l'accorde) qui ressemble à ça. Seulement, ce code rencontre un problème.
Admettons que je tape le mot "test". Le code remplace lettre par lettre mais ne s'arrête pas à un seul changement:
- t est remplacé par w
w est remplacé par z
z est remplacé par c - e est remplacé par h
h est remplacé par k
k est remplacé par n
n est remplacé par q
q est remplacé par t
t est remplacé par w
w est remplacé par z
z est remplacé par c
- s est remplacé par v
v est remplacé par y
y est remplacé par b - t est remplacé par w
w est remplacé par z
z est remplacé par c
Le problème est donc que le code s'exécute en boucle. Alors là certains d'entre vous me diront peut-être
Ce à quoi je vous répondraiTu a dit:oui mais tu as mis tes replace() dans une boucle donc c'est normal
Paul GTP a dit:mais pas du tout espèce de noob c'est juste que le code se lit de haut en bas donc forcément le problème rencontré est normal, boucle fort ou pas![]()
Voici ce que je cherche à faire comprendre au code si je rentrais le mot test:
- t est remplacé par w
- e est remplacé par h
- s est remplacé par v
- t est remplacé par w
Je sais que mon code est incorrect, mais je vous laisse une trace de ce que j'ai fait:
Code:
function cesar() {
var message = document.getElementById("cesar").value;
for (i = 0; i < message.length; i++) {
var message = message.replace(/a/gm, "d");
var message = message.replace(/b/gm, "e");
var message = message.replace(/c/gm, "f");
var message = message.replace(/d/gm, "g");
var message = message.replace(/e/gm, "h");
var message = message.replace(/f/gm, "i");
var message = message.replace(/g/gm, "j");
var message = message.replace(/h/gm, "k");
var message = message.replace(/i/gm, "l");
var message = message.replace(/j/gm, "m");
var message = message.replace(/k/gm, "n");
var message = message.replace(/l/gm, "o");
var message = message.replace(/m/gm, "p");
var message = message.replace(/n/gm, "q");
var message = message.replace(/o/gm, "r");
var message = message.replace(/p/gm, "s");
var message = message.replace(/q/gm, "t");
var message = message.replace(/r/gm, "u");
var message = message.replace(/s/gm, "v");
var message = message.replace(/t/gm, "w");
var message = message.replace(/u/gm, "x");
var message = message.replace(/v/gm, "y");
var message = message.replace(/w/gm, "z");
var message = message.replace(/x/gm, "a");
var message = message.replace(/y/gm, "b");
var message = message.replace(/z/gm, "c");
var message = message.replace(/A/gm, "D");
var message = message.replace(/B/gm, "E");
var message = message.replace(/C/gm, "F");
var message = message.replace(/D/gm, "G");
var message = message.replace(/E/gm, "H");
var message = message.replace(/F/gm, "I");
var message = message.replace(/G/gm, "J");
var message = message.replace(/H/gm, "K");
var message = message.replace(/I/gm, "L");
var message = message.replace(/J/gm, "M");
var message = message.replace(/K/gm, "N");
var message = message.replace(/L/gm, "O");
var message = message.replace(/M/gm, "P");
var message = message.replace(/N/gm, "Q");
var message = message.replace(/O/gm, "R");
var message = message.replace(/P/gm, "S");
var message = message.replace(/Q/gm, "T");
var message = message.replace(/R/gm, "U");
var message = message.replace(/S/gm, "V");
var message = message.replace(/T/gm, "W");
var message = message.replace(/U/gm, "X");
var message = message.replace(/V/gm, "Y");
var message = message.replace(/W/gm, "Z");
var message = message.replace(/X/gm, "A");
var message = message.replace(/Y/gm, "B");
var message = message.replace(/Z/gm, "C");
document.getElementById("valuecesar").innerHTML += message[i];
}
}
Ça n'est pas d'une grande utilité, mais je sens qu'on va me le demander en commentaires 
Voici donc un bout de ma page
Voici donc un bout de ma page
HTML:
<div class="character">
<p>Entre un message à crypter:<br />
<input type="text" id="cesar" /><br />
<button onclick="cesar()">Crypter</button></p>
<p><b>Message crypté:</b> <span id="valuecesar"></span><br /></p>
</div>
Comment arriver à mon objectif ? Le but serait d'utiliser les bases de JS sans trop rentrer dans la complexité.
Facultatif: Si vous savez compiler un peu le code (du genre var alphabet = "abcdefghijklmnopqrstuvw") en restant simple ce serait parfait

S'il vous faut plus d'informations, n'hésitez pas à me les demander

Merci d'avance
