begin process at 2012 02 09 11:46:21
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Sécurité & Cryptage

 > CHIFFRE DE VIGENÈRE

CHIFFRE DE VIGENÈRE


 Information sur la source

Note :
Aucune note
Catégorie :Sécurité & Cryptage Classé sous :vigenère, codage, cryptage, chiffrement Niveau :Débutant Date de création :29/10/2006 Date de mise à jour :31/10/2006 13:34:22 Vu :12 108

Auteur : franco_se

Ecrire un message privé
Commentaire sur cette source (0)
Ajouter un commentaire et/ou une note

 Description

bonjours

je viens de faire un petit script cryptant un text en utilisant le chiffre de Vigenère.
pour ceux qui ne connaitraient pas, le chiffre de Vigenère est un systeme de chiffrement par substitution polyalphabétique, élaboré par Blaise de Vigenère ( reportez-vous a Wikipédia pour plus d'infos )
Il s'agissait a la base d'un simple travail sur les modulo, mais ayant obtenu qlq chose qui marche, je me suis dit que ça interesserait peut etre certains

ce script utilise donc ce principe de chiffrement
Durant le chiffrement, on obtien 3 chaines de caracteres:
- la clé de codage, qui est generée aleatoirement, et à la taille du text a chiffrer
- le tableau des caractères, qui contient les caractères, et qui est melangée aléatoirement
- le text codé


Durant le dechiffrement, il faut imperativement donner les 3 chaines completes et juste ( logique ). on recupere le texte décodé

l'utilisation de clés et tables de caracteres générées aleatoirement complique les choses, et empeche de retenire la clé par coeur, contrairement a la version de Vigenère, ou elles étaient préétablites

Source

  • <?
  • //fonction de chiffrement
  • function chiffrage_de_Vigenère($text){
  • //caractères reconnus par le code
  • $caract = array ('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'Â', 'À', 'É', 'È', 'Ê', 'Ë', 'Ç', 'Î', 'Ï', 'Ù', 'Ô', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'à', 'â', 'é', 'è', 'ê', 'ç', 'ï', 'î', 'û', 'ô', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ',', ' ', ';', ':', '?', '.', '!', '\'', '<', '>', '$', '£', '%', 'µ', '*', '+', '-');
  • //on melange les caractères
  • shuffle($caract);
  • //creation d'un tableau avec le text
  • $text_explode = preg_split('//', $text, -1, PREG_SPLIT_NO_EMPTY);
  • //creation de la clé de cryptage
  • $clé = array();
  • $nb_caracteres_clé = count($text_explode);
  • for($i=0; $i<=$nb_caracteres_clé; $i++) $clé[]= $caract[rand()%count($caract)];
  • //chiffrement du texte
  • $code = "";
  • for($i=0; $i<count($text_explode); $i++) $code = $code . $caract[(array_search($text_explode[$i], $caract)+array_search($clé[$i%count($clé)], $caract))%count($caract)];
  • //retour des données sous forme de tableau
  • $chiffrage = array( 'text' => $text, 'clé' => implode($clé), 'code' => $code, 'caract'=> implode($caract));
  • return $chiffrage;
  • }
  • //fonction de déchiffrement
  • function dechiffrage_de_Vigenère($text, $clé, $caract){
  • //creation du tableau de caractères
  • $caract = preg_split('//', $caract, -1, PREG_SPLIT_NO_EMPTY);
  • //creation de la clé
  • $clé = preg_split('//', $clé, -1, PREG_SPLIT_NO_EMPTY);
  • //creation d'un tableau du text
  • $text_explode = preg_split('//', $text, -1, PREG_SPLIT_NO_EMPTY);
  • //dechiffrement du code
  • $code = "";
  • for($i=0; $i<count($text_explode); $i++){
  • $id_caract = (array_search($text_explode[$i], $caract)-array_search($clé[$i%count($clé)], $caract))%count($caract);
  • $code = $code . $caract[(($id_caract < 0)?(count($caract)+$id_caract):$id_caract)];
  • }
  • //retour du text decodé
  • return $code;
  • }
  • //exemple
  • $text = "Test de chiffrement d'un text par le chiffre de Vigenère";
  • $codage = chiffrage_de_Vigenère($text);
  • echo "Chiffrage d'un text : <br /><br /><br />
  • <strong>Text à chiffrer: </strong><br />
  • <textarea cols=\"100\" rows=\"5\">".$codage['text']."</textarea>
  • <br /><br />
  • <strong>Clé de codage: </strong><br />
  • <textarea cols=\"100\" rows=\"5\" readonly=\"readonly\">".$codage['clé']."</textarea><br /><br />
  • <strong>Code:</strong>;<br />
  • <textarea cols=\"100\" rows=\"5\" readonly=\"readonly\">".$codage['code']."</textarea><br /><br />
  • <strong>Tableau des caractères:</strong><br />
  • <textarea cols=\"100\" rows=\"5\" readonly=\"readonly\">".$codage['caract']."</textarea><br />
  • <br /><hr><br />";
  • $decodage = dechiffrage_de_Vigenère($codage['code'], $codage['clé'], $codage['caract']);
  • echo "Déchiffrage d'un text : <br /><br /><br />
  • <strong>Code:</strong>;<br />
  • <textarea cols=\"100\" rows=\"5\">".$codage['code']."</textarea><br /><br />
  • <strong>Clé de codage: </strong><br />
  • <textarea cols=\"100\" rows=\"5\">".$codage['clé']."</textarea><br /><br />
  • <strong>Tableau des caractères:</strong><br />
  • <textarea cols=\"100\" rows=\"5\">".$codage['caract']."</textarea><br /><br />
  • <strong>Texte déchiffrer: </strong><br />
  • <textarea cols=\"100\" rows=\"5\" readonly=\"readonly\">".$decodage."</textarea>";
  • ?>
<?

//fonction de chiffrement 

function chiffrage_de_Vigenère($text){

//caractères reconnus par le code
$caract = array ('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'Â', 'À', 'É', 'È', 'Ê', 'Ë', 'Ç', 'Î', 'Ï', 'Ù', 'Ô', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'à', 'â', 'é', 'è', 'ê', 'ç', 'ï', 'î', 'û', 'ô', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ',', ' ', ';', ':', '?', '.', '!', '\'', '<', '>', '$', '£', '%', 'µ', '*', '+', '-');
//on melange les caractères
shuffle($caract);


//creation d'un tableau avec le text
$text_explode = preg_split('//', $text, -1, PREG_SPLIT_NO_EMPTY);

//creation de la clé de cryptage
$clé = array();
$nb_caracteres_clé = count($text_explode);
for($i=0; $i<=$nb_caracteres_clé; $i++) $clé[]= $caract[rand()%count($caract)];

//chiffrement du texte
$code = "";
for($i=0; $i<count($text_explode); $i++) $code = $code . $caract[(array_search($text_explode[$i], $caract)+array_search($clé[$i%count($clé)], $caract))%count($caract)];


//retour des données sous forme de tableau
$chiffrage = array( 'text' => $text, 'clé' => implode($clé), 'code' => $code, 'caract'=> implode($caract));
return $chiffrage;


}

//fonction de déchiffrement 

function dechiffrage_de_Vigenère($text, $clé, $caract){

//creation du tableau de caractères
$caract = preg_split('//', $caract, -1, PREG_SPLIT_NO_EMPTY);

//creation de la clé
$clé = preg_split('//', $clé, -1, PREG_SPLIT_NO_EMPTY);

//creation d'un tableau du text
$text_explode = preg_split('//', $text, -1, PREG_SPLIT_NO_EMPTY);

//dechiffrement du code
$code = "";
for($i=0; $i<count($text_explode); $i++){
$id_caract =  (array_search($text_explode[$i], $caract)-array_search($clé[$i%count($clé)], $caract))%count($caract);
$code = $code . $caract[(($id_caract < 0)?(count($caract)+$id_caract):$id_caract)];
}

//retour du text decodé
return $code;

}

//exemple 

$text = "Test de chiffrement d'un text par le chiffre de Vigenère";

$codage = chiffrage_de_Vigenère($text);

echo "Chiffrage d'un text : <br /><br /><br />

<strong>Text à chiffrer: </strong><br />
<textarea cols=\"100\" rows=\"5\">".$codage['text']."</textarea>
<br /><br />

<strong>Clé de codage: </strong><br />
<textarea cols=\"100\" rows=\"5\" readonly=\"readonly\">".$codage['clé']."</textarea><br /><br />
<strong>Code:</strong>;<br />
<textarea cols=\"100\" rows=\"5\" readonly=\"readonly\">".$codage['code']."</textarea><br /><br />

<strong>Tableau des caractères:</strong><br />
<textarea cols=\"100\" rows=\"5\" readonly=\"readonly\">".$codage['caract']."</textarea><br />
<br /><hr><br />";

$decodage = dechiffrage_de_Vigenère($codage['code'], $codage['clé'], $codage['caract']);

echo "Déchiffrage d'un text : <br /><br /><br />
<strong>Code:</strong>;<br />
<textarea cols=\"100\" rows=\"5\">".$codage['code']."</textarea><br /><br />
<strong>Clé de codage: </strong><br />
<textarea cols=\"100\" rows=\"5\">".$codage['clé']."</textarea><br /><br />
<strong>Tableau des caractères:</strong><br />
<textarea cols=\"100\" rows=\"5\">".$codage['caract']."</textarea><br /><br />

<strong>Texte déchiffrer: </strong><br />
<textarea cols=\"100\" rows=\"5\" readonly=\"readonly\">".$decodage."</textarea>";

?>



 Historique

31 octobre 2006 13:34:22 :
bug d'affichage

 Sources du même auteur

CLASSE DATABASE POUR CONNECTION ET MODIFICATION D'UNE BDD MY...
Source avec Zip Source avec une capture COMPARER DEUX IMAGES ET VOIR LEURS DIFFÉRENCES
GÉNÉRATEUR D'UNE CHAINE ALEATOIRE FACILEMENT MEMORISABLE
COMPARAISON DE 2 CHAINES , ET RETOUR DU POURCENTAGE DE RESSE...
DEFILEMENT D'IMAGES POUR ALBUMS PHOTOS

 Sources de la même categorie

Source avec Zip Source avec une capture ACCÈS, ESPACE MEMBRE AVEC INSCRIPTION ET DÉSINSCRIPTION PAR ... par stephelle
Source avec Zip CRYPTAGE REVERSIBLE par Mokost
Source avec Zip Source avec une capture CREATION DE COMPTE AVEC CRYPTAGE ET ESPACE DE CONNEXION SEC... par bm1982
Source avec Zip PROTÉGEZ VOS LIENS DE TÉLÉCHARGEMENT PAR MOT DE PASSE ET/OU ... par unlien
CRYPTAGE/DECRYPTAGE MCRYPT par sephirothgeek

 Sources en rapport avec celle ci

Source avec Zip CRYPTAGE REVERSIBLE par Mokost
Source avec Zip Source avec une capture CREATION DE COMPTE AVEC CRYPTAGE ET ESPACE DE CONNEXION SEC... par bm1982
CRYPTAGE/DECRYPTAGE MCRYPT par sephirothgeek
ENCODEUR D'ADRESSES EMAILS par Boris090
CRYPTAGE / DECRYPTAGE BASIQUE EN PHP UTILISANT LE PRINCIPE D... par Tadpole

Commentaires et avis

Aucun commentaire pour le moment.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Cryptage AES ... [ par LocalStone ] Bonsoir &#224; tous, Je cherche d&#233;sesperement un script PHP qui permeterait de crypter n'importe quel texte avec un codage AES (ou autre, mais un cryptage mot de passe [ par richardd ] Bonjour,Quelle est la meilleure solution pour crypter/d&#233;cryter un mot de passe avec une cl&#233; pour stockage en base de donn&#233;es.Le but &#2 htpasswd [ par neolien ] Bonjour &#224; tous, Je suis d&#233;butant en php et j'essaie de placer une s&#233;curisation sur des r&#233;pettoires avec htacess et htpasswd. Pour codage de caractères [ par skoukni_brahim ] bonjour &#224; tous, et merci d'avance&nbsp; j'essaye de r&#233;cup&#233;rer des donn&#233;es saisies ds un formulaire, en g&#233;n&#233;rant un &#233 AIDE Cryptage [ par MATHIS49 ] Bonjour ! Voila j'ai fais le tour de phpcs et je ne trouve pas de script de cryptage / d&#233;cryptage et qui ont l'air bien s&#233;curis&#233;. Auri Cryptage des sources PHP [ par Will28 ] Bonjour,&nbsp;je voulais savoir si quelqu'un pouvait me renseigner sur le cryptage des sources PHP, et plus sp&#233;cialement sur les produit Zend.En Besoin de conseil(s) en cryptage... [ par nougitch ] Bonjour, J'ai mis en place une fonction d'upload de fichier sur mon site. J'aimerai mettre en place un cryptage pour &#233;viter d'&#233;craser un fi *PHP* Cryptage adresse mail ! [ par masterfree ] Bonjour &#224; tous,Avant, j'avais un site en Html; maintenant, je fais le m&#234;me en PHP.Je crypte mes mails en JS (Html). J'ai vu plusieurs exempl Cryptage, décryptage [ par Zart ] Bonjour, Je parcourais le site &#224; la recherche d'un algo de cryptage/d&#233;cryptage... Et apparemment, il n'y a pas celui que je cherche d'apr&# Probleme codage [ par lycol ] Bonjour &#224; tous!!Voila je d&#233;sirerais savoir qu'est-ce qui ne vas pas dans ce code pour avoir l'erreur la:Warning: extract(): First argument


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
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 : 4,243 sec (3)

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