Chiffre de César en JavaScript

Muhammad Muzammil Hussain 12 octobre 2023
  1. Chiffre de César
  2. Algorithme du chiffrement de César
  3. Chiffre de César en JavaScript
Chiffre de César en JavaScript

Dans cet article, nous allons apprendre et utiliser Caesar Cipher dans le code source JavaScript. Le chiffrement de César est une technique pour chiffrer et déchiffrer la chaîne en programmation.

Chiffre de César

C’est l’une des techniques les plus simples et les plus avancées pour chiffrer les données. Dans le texte de chaîne fourni, nous remplaçons et modifions chaque lettre par la lettre, qui est un nombre fixe vers le bas ou vers le haut dans l’alphabet.

Par exemple, si nous définissons le nombre fixe ascendant 3, "A" dans une chaîne sera remplacé par "D", et "B" sera remplacé par "E", et ainsi de suite.

Supposons que nous définissions vers le haut le nombre fixe 3 pour décaler une lettre ; notre cryptage fournira un résultat, comme indiqué ci-dessous.

original string = "hello world"
result string = "khoor zruog"

Algorithme du chiffrement de César

Une chaîne qui doit être chiffrée est appelée texte ; d’abord, nous devons définir un nombre fixe entre 0 et 25 car nous savons que le nombre total d’alphabets est de 26 ; ensuite, nous devons parcourir le texte fourni un caractère à la fois.

Pour chaque index, convertissez chaque caractère selon la règle de l’incrément vers le bas ou de l’incrément vers le haut, que nous avons déjà décidée. Enfin, nous devons générer la chaîne résultante.

Chiffre de César en JavaScript

En JavaScript, les développeurs utilisaient principalement des techniques de chiffrement intégrées ou personnalisées pour sécuriser les données lors de l’interaction avec le serveur. Dans une application Web JavaScript, nous devons chiffrer nos données la plupart du temps avant de les télécharger dans notre base de données.

Nous allons créer un exemple de la fonction JavaScript ci-dessous qui nous aidera à chiffrer notre chaîne dans la technique Caesar Cipher.

Exemple:

const org = 'hello world';
const createMAp = (alphabets, shift) => {
  return alphabets.reduce((charsMap, currentChar, charIndex) => {
    const copy = {...charsMap};
    let ind = (charIndex + shift) % alphabets.length;
    if (ind < 0) {
      ind += alphabets.length;
    };
    copy[currentChar] = alphabets[ind];
    return copy;
  }, {});
};
const encrypt = (org, shift = 0) => {
  const alphabets = 'abcdefghijklmnopqrstuvwxyz'.split('');
  const map = createMAp(alphabets, shift);
  return org.toLowerCase().split('').map(char => map[char] || char).join('');
};

console.log('original string : ' + org)
console.log('result string :' + encrypt(org, 3))

Production:

"original string : hello world"
"result string :khoor zruog"

Dans la source JavaScript ci-dessus, nous avons créé la fonction encrypt dans laquelle nous transmettons des valeurs de chaîne et des nombres fixes en tant qu’argument. Nous avons défini tous les alphabets et généré des objets cartographiques à l’aide de la fonction createMap().

Dans la fonction createMap(), nous avons utilisé la méthode reduce pour générer l’objet. Nous avons utilisé les méthodes toLowerCase() et split() pour éviter et générer de nouvelles chaînes en évitant les caractères spéciaux avec le nombre fixe 3.