begin process at 2012 05 30 10:54:05
  Trouver un code source :
 
dans
 
Accueil > 

Tutoriels

 > 

Trucs Amusants

 > ENIGMA, cryptage des message en JavaScript

ENIGMA, cryptage des message en JavaScript


 Information sur le tutoriel

Note :
Aucune note

 Description

Avec cette page vous pouvez échanger des messages cryptés avec vous amis pour avoir plus de liberté ;-)
Enigma est une machine électromécanique portable d'origine allemande, faisant appel à des rotors montés sur cylindres pour le chiffrement et le déchiffrement de l'information. Plus précisément, Enigma est une famille de machines, car il en a existé de nombreuses et subtiles variantes. Enigma fut commercialisée en Europe et dans le reste du monde dès le début des années 1920. Elle fut aussi adaptée pour une utilisation par les services militaires et diplomatiques de nombreuses nations.

Tutorial

<html>
<head>
<title>INEGMA</title>
<script language="JavaScript">
<!--
var messagecd=""
function codage(){var message = document.machine.msg.value
                  message=message.toUpperCase()
                  var code = document.machine.codex.value
for(j=0; j<code; j++)
                {messagecd=""
   for(i=0; i<message.length; i++) {
   switch(message.charAt(i)){
    case " " :
        messagecd= messagecd+" ";
        break;
    case "A" :
        messagecd= messagecd+"E";
        break;
    case "B" :
        messagecd= messagecd+"P";
        break;
    case "C" :
        messagecd= messagecd+"S";
        break;
    case "D" :
        messagecd= messagecd+"T";
        break;
    case "E" :
        messagecd= messagecd+"I";
        break;
    case "F" :
        messagecd= messagecd+"W";
        break;
    case "G" :
        messagecd= messagecd+"K";
        break;
    case "H" :
        messagecd= messagecd+"N";
        break;
    case "I" :
        messagecd= messagecd+"U";
        break;
    case "J" :
        messagecd= messagecd+"V";
        break;
    case "K" :
        messagecd= messagecd+"G";
        break;
    case "L" :
        messagecd= messagecd+"C";
        break;
    case "M" :
        messagecd= messagecd+"L";
        break;
    case "N" :
        messagecd= messagecd+"R";
        break;
    case "O" :
        messagecd= messagecd+"Y";
        break;
    case "P" :
        messagecd= messagecd+"B";
        break;
    case "Q" :
        messagecd= messagecd+"X";
        break;
    case "R" :
        messagecd= messagecd+"H";
        break;
    case "S" :
        messagecd= messagecd+"M";
        break;
    case "T" :
        messagecd= messagecd+"D";
        break;
    case "U" :
        messagecd= messagecd+"O";
        break;
    case "V" :
        messagecd= messagecd+"F";
        break;
    case "W" :
        messagecd= messagecd+"Z";
        break;
    case "X" :
        messagecd= messagecd+"Q";
        break;
    case "Y" :
        messagecd= messagecd+"A";
        break;
    case "Z" :
        messagecd= messagecd+"J";
        break;
    default :
            messagecd= messagecd+message.charAt(i);
    }
    }
      message=messagecd
}

document.machine.msgcd.value = messagecd
}

var messagecd=""
function decodage(){
var message = document.machine.msg.value
var messagecd=""
message=message.toUpperCase()
var code = document.machine.codex.value
for(j=0; j<code; j++)
                {messagecd=""
   for(i=0; i<message.length; i++) {
   switch(message.charAt(i)){
    case " " :
        messagecd= messagecd+" ";
        break;
    case "A" :
        messagecd= messagecd+"Y";
        break;
    case "B" :
        messagecd= messagecd+"P";
        break;
    case "C" :
        messagecd= messagecd+"L";
        break;
    case "D" :
        messagecd= messagecd+"T";
        break;
    case "E" :
        messagecd= messagecd+"A";
        break;
    case "F" :
        messagecd= messagecd+"V";
        break;
    case "G" :
        messagecd= messagecd+"K";
        break;
    case "H" :
        messagecd= messagecd+"R";
        break;
    case "I" :
        messagecd= messagecd+"E";
        break;
    case "J" :
        messagecd= messagecd+"Z";
        break;
    case "K" :
        messagecd= messagecd+"G";
        break;
    case "L" :
        messagecd= messagecd+"M";
        break;
    case "M" :
        messagecd= messagecd+"S";
        break;
    case "N" :
        messagecd= messagecd+"H";
        break;
    case "O" :
        messagecd= messagecd+"U";
        break;
    case "P" :
        messagecd= messagecd+"B";
        break;
    case "Q" :
        messagecd= messagecd+"X";
        break;
    case "R" :
        messagecd= messagecd+"N";
        break;
    case "S" :
        messagecd= messagecd+"C";
        break;
    case "T" :
        messagecd= messagecd+"D";
        break;
    case "U" :
        messagecd= messagecd+"I";
        break;
    case "V" :
        messagecd= messagecd+"J";
        break;
    case "W" :
        messagecd= messagecd+"F";
        break;
    case "X" :
        messagecd= messagecd+"Q";
        break;
    case "Y" :
        messagecd= messagecd+"O";
        break;
    case "Z" :
        messagecd= messagecd+"W";
        break;
    default :
            messagecd= messagecd+message.charAt(i);
   }
   }
   message=messagecd
}
document.machine.msgcd.value = messagecd
}

//-->
</script>
</head>
 
<body bgcolor="#0000FF" text="#000000" background="background.jpg">
<br><br><br><br>
<div align="center">
  <p><b><font color="#FFFFFF" size="6">Machine INEGMA</font></b><font color="#FFFFFF"> <sup>version
    BETA</sup></font></p>
  </div>
<br><br><br>
<form method="post" action="" name="machine">
  <p align="center">
    <textarea name="msg" cols="50" wrap="PHYSICAL" rows="3"></textarea>
  </p>
  <p align="center">
    <font color="#C0C0C0">Code de criptage :</font> <input type="text" name="codex" value="" size="8"><br><br>
    <input type="button" onClick="codage()" name="coder" value="CODER">
    <input type="button" onClick="decodage()" name="decoder" value="DECODER">
  </p>
  <p align="center">
    <textarea name="msgcd" cols="50" rows="3"></textarea>
</form>
<BR>
<p align=center><a href="javascript:;" OnClick="self.close();"><img src="fermer.PNG"></a></p>
</body>
</html>

Commentaires

Commentaire de zertyx le 27/03/2011 18:56:58

Pour crypter un texte, mettez le dans la première zone de texte et choisissez un code (entre 2 et 9 de préférence) puis clickez sur "CODER".
Pour décrypter un message, mettez le dans la première zone de texte et entrer le code de cryptage puis clickez sur "DECODER".
@+

Commentaire de Bacterius le 01/04/2011 00:23:57

Ouais. Ben c'est pas la plus belle implémentation d'Enigma que j'aie vu.
Pourquoi ne pas simplifier les deux switch en utilisant par exemple un tableau ou autre ?

Cordialement, Bacterius !

Commentaire de Bacterius le 02/04/2011 02:59:21

D'ailleurs c'est pas Enigma du tout, c'est une simple substitution alphabétique (qui correspond entre autres à l'une des substitutions créées par une certaine disposition des rotors d'Enigma). Il faudrait peut-être permettre à l'utilisateur de changer la clef ? Sinon ça n'offre aucune sécurité.

Cordialement, Bacterius !

Commentaire de zertyx le 03/04/2011 10:45:06

Salut Bacterius, merci pour tes remarque, mais ce n'ait qu'un simple exemple qui explique le mécanisme du fonctionnement de Enigma (c'est la version beta). la version finale complexe je l'avais implémenté en JAVA, c'est plus puissant ;-)

Commentaire de DarkC0 le 03/04/2011 18:40:57

Salut ZERTYX,

j'ai essayais ton code et je trouve que sa déchire grave, bon c'est vrais qu'il est un peu long mais comme tu le dis, c'est une version beta.
En tous cas sa gére !!!

Commentaire de zertyx le 03/04/2011 19:30:35

amuse toi bien DarkC0

Commentaire de Julien39 le 09/06/2011 14:08:03 administrateur CS

Ce n'est pas un tutoriel mais c'est un code.

pour transformer tes lettres, un énorme switch n'est pas une bonne idée, tu peux jeter un oeil ici pour arranger ca http://js.fleegix.org/plugins/hash/hash

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,140 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales