- Inscription
- 15 Août 2013
- Messages
- 6 194
- Réactions
- 7 545
- Points
- 24 772
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