Accueil > > > CHIFFRE DE VIGENÈRE
CHIFFRE DE VIGENÈRE
Information sur la source
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
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Cryptage AES ... [ par LocalStone ]
Bonsoir à tous, Je cherche dé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écryter un mot de passe avec une clé pour stockage en base de données.Le but 
htpasswd [ par neolien ]
Bonjour à tous, Je suis débutant en php et j'essaie de placer une sécurisation sur des répettoires avec htacess et htpasswd. Pour
codage de caractères [ par skoukni_brahim ]
bonjour à tous, et merci d'avance j'essaye de récupérer des données saisies ds un formulaire, en générant un é
AIDE Cryptage [ par MATHIS49 ]
Bonjour ! Voila j'ai fais le tour de phpcs et je ne trouve pas de script de cryptage / décryptage et qui ont l'air bien sécurisé. Auri
Cryptage des sources PHP [ par Will28 ]
Bonjour, je voulais savoir si quelqu'un pouvait me renseigner sur le cryptage des sources PHP, et plus spé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 éviter d'écraser un fi
*PHP* Cryptage adresse mail ! [ par masterfree ]
Bonjour à tous,Avant, j'avais un site en Html; maintenant, je fais le mê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 à la recherche d'un algo de cryptage/décryptage... Et apparemment, il n'y a pas celui que je cherche d'apr&#
Probleme codage [ par lycol ]
Bonjour à tous!!Voila je désirerais savoir qu'est-ce qui ne vas pas dans ce code pour avoir l'erreur la:Warning: extract(): First argument
|
Derniers Blogs
TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko [FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson TECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PCTECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PC par ROMELARD Fabrice
Speakers: Thierry Rapatout, Antoine Petit et Xavier Trebbia Cette session entre dans le cadre des RDV Décideurs des TechDays 2012, elle est liée à la consumérisation de l'IT et la mise en place du "DeskTop as a Service" dans de plus en ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|