|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
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
Sources en rapport avec celle ci
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
|
Téléchargements
Logiciels à télécharger sur le même thème :
|