Articles

Créer un algorithme de haschage de messages avec JavaScript

Avertissement :Cet algorithme, conçu à des fins éducatives, n'est pas destiné à une utilisation sécurisée. Il sert simplement d'exemple pour comprendre les bases du hashage et du chiffrement de manière ludique.

Introduction

Dans ce tutoriel, nous allons créer un algorithme simple en JavaScript permettant de coder et décoder des messages de manière réversible.

Créons l'algorithme :

Pour commencer, deux fonctions ont été créées, l'une pour hasher le message et l'autre pour le déchiffrer.


function hashMessage(message) {
let hashedMsg = "";
// Concaténer les caractères du message
  for(let i = 0; i < message.length; i++) {
      hashedMsg += message[i];
    }

// Alterner les caractères
    for(let i = 0; i < hashedMsg.length; i+=2) {
      let temp = hashedMsg[i];
      hashedMsg = hashedMsg.split('');
      hashedMsg[i] = hashedMsg[i+1]; 
      hashedMsg[i+1] = temp;
      hashedMsg = hashedMsg.join('');
  }
    // Retournez le message codé
    return hashedMsg;
}

// fonction pour decoder
function decryptMessage(hashedMsg) {
let decodedMsg = "";
// Inverser l'opération de hachage  
  for (let i = 0; i < hashedMsg.length; i += 2) {
    let temp = hashedMsg[i];
    hashedMsg = hashedMsg.split('');
    hashedMsg[i] = hashedMsg[i + 1];
    hashedMsg[i + 1] = temp;
    hashedMsg = hashedMsg.join('');
  }

  // Récupérer le message d'origine
  for (let i = 0; i < hashedMsg.length; i++) {
    decodedMsg += hashedMsg[i];
  }

  return decodedMsg;
}

Vous pouvez coder un message de la manière suivante:


let message = "Bonjour";
let hashedMsg = hashMessage(message);

Et le décoder ensuite:


let decodedMsg = decryptMessage(hashedMsg);

Code complet:

Voici le code complet


function hashMessage(message) {
      let hashedMsg = "";

      // Concaténer les caractères du message
      for(let i = 0; i < message.length; i++) {
        hashedMsg += message[i];
      }

      // Alterner les caractères
      for(let i = 0; i < hashedMsg.length; i+=2) {
        let temp = hashedMsg[i];
        hashedMsg = hashedMsg.split('');
        hashedMsg[i] = hashedMsg[i+1]; 
        hashedMsg[i+1] = temp;
        hashedMsg = hashedMsg.join('');
      }

      return hashedMsg;
    }

    function decryptMessage(hashedMsg) {
  let decodedMsg = "";

  // Inverser l'opération de hachage  
  for (let i = 0; i < hashedMsg.length; i += 2) {
    let temp = hashedMsg[i];
    hashedMsg = hashedMsg.split('');
    hashedMsg[i] = hashedMsg[i + 1];
    hashedMsg[i + 1] = temp;
    hashedMsg = hashedMsg.join('');
  }

  // Récupérer le message d'origine
  for (let i = 0; i < hashedMsg.length; i++) {
    decodedMsg += hashedMsg[i];
  }

  return decodedMsg;
}
    // Pour une démonstration en console
    let message = "Bonjour";
    let hashedMsg = hashMessage(message);
    console.log("Message initial:", message);
    console.log("Message codé:", hashedMsg);

    let decodedMsg = decryptMessage(hashedMsg);
    console.log("Message décodé:", decodedMsg);

J'espère que cet exemple vous aura permis de mieux comprendre le fonctionnement de base du hachage et du chiffrement! N'hésitez pas à l'améliorer.

"La complexité est le camouflage de la vérité simplifiée." - Charles Duell

Sam le Dev

Enregistrer un commentaire