Javascript et cryptage / décryptage à la mode César

Le chiffrement est en fait une simple substitution monoalphabétique, c’est-à-dire qu’une lettre est remplacée par une seule autre.

Le code de césar a la particularité qu’il est basé sur un simple décalage de l’alphabet et, ainsi, si on note A = 1, B = 2, ..., Z = 26, que l’on ajoute une constante et que l’on conserve le résultat modulo 26. On obtient le texte codé.

On appelle la constante, la clé ou le décalage. Certains appellent la clé la lettre correspondant au A du texte clair. Par exemple, le décalage par défaut est de 3, la lettre A devient D, que l’on nomme la clé.

function Cesar(clair,decalage,chiffre) {
  Alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ';
  clair.value = clair.value.toUpperCase();
  k=parseInt(decalage);
  while(k<0) {k+=26};
   while(k>25) {k-=26};
  chiffre.value = "";
  for(var count = 0; count < clair.value.length; count++) {
    alpha = clair.value.charAt(count);
    if (alpha == " ")
        { chiffre.value+=" " )
    else {
        idx = Alphabet.indexOf(alpha);
        if (idx > -1)     // ne (dé)chiffre que les 26 lettres majuscules
            {
              chiffre.value += Alphabet.charAt(idx+k);
            }
        }
  }
}

Pour utiliser ce programme:

  • en mode chiffrement : Cesar(TextClair,key,TextChiffre)
  • en mode déchiffrement : Cesar(TextChiffre,26-key,TextClair)