Accueil > > > CRYPTAGE/DECRYPTAGE MCRYPT
CRYPTAGE/DECRYPTAGE MCRYPT
Information sur la source
Description
Formulaire de cryptage/decryptage simple, utilisation de 2 algo successif, utilisation du module Mcrypt http://php.net/manual/fr/book.mcrypt.php Je debute en php donc ce code est loin d'etre parfait, si vous voulez un exemple de ce code: http://sephirothgeek.com/outils/cryptage.php
Source
- <?php
-
- $request_url = $_SERVER['REQUEST_URI'];
- $request_url = str_replace ( "&" , "&" , $request_url);
- /* L'utilisation de cette variable dans le formulaire est obligatoire pour passer le validateur du W3C */
-
- echo "<div id='corps'>\n";
- echo "<h1> Cryptage </h1>\n";
-
- /*Encryptage*/
- if ((isset($_POST['texte_crypter'])) AND (isset($_POST['cle_cryptage']))) {
-
- /* Recuperation des POST */
- $message = stripslashes($_POST['texte_crypter']);
- $key = stripslashes($_POST['cle_cryptage']);
-
- /*definition du 1er algorithme et du 1er mode */
- $algo = "rijndael-256";
- $mode = "cbc";
-
- $td = mcrypt_module_open($algo, "", $mode, "");
- $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
-
- /*Tronquature de la cle si elle est trop grosse */
- $size = mcrypt_enc_get_key_size($td);
- $key = substr($key, 0, $size);
-
- $iv_encode = base64_encode($iv);
-
- /*Affichage de l'IV numero 1 */
- echo "<span class='souligne'>Votre IV(1):</span><br><input type='text' value='$iv_encode'><br>";
-
- /*Encryption numero 1 */
- mcrypt_generic_init($td, $key, $iv);
- $message_crypter_1 = mcrypt_generic($td, $message);
- mcrypt_generic_deinit($td);
- mcrypt_module_close($td);
- $message_crypter_fini_1 = base64_encode($message_crypter_1);
-
- /*definition du 2eme algorithme et du 2eme mode */
- $algo = "serpent";
- $mode = "cbc";
-
- $td = mcrypt_module_open($algo, "", $mode, "");
- $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
- $iv_encode = base64_encode($iv);
-
- /* Troncature de la clé */
- $size = mcrypt_enc_get_key_size($td);
- $key = substr($key, 0, $size);
-
- /* Afficahge de la cle apres traitement */
- echo "<span class='souligne'>Votre clé:</span><br><input type='text' value='$key'><br>";
-
- /*Affichage de l'IV numero 2 */
- echo "<span class='souligne'>Votre IV(2):</span><br><input type='text' value='$iv_encode'><br>";
-
- /*Encryption numero 2 */
- mcrypt_generic_init($td, $key, $iv);
- $message_crypter_2 = mcrypt_generic($td, $message_crypter_fini_1);
- mcrypt_generic_deinit($td);
- mcrypt_module_close($td);
- $message_crypter_fini_2 = base64_encode($message_crypter_2);
-
- /*Affichage du message crypter */
- echo "<span class='souligne'>Votre message crypter:</span><br><textarea cols=50 rows=8>$message_crypter_fini_2</textarea><br>";
- }
- /* Decryptage */
- if ((isset($_POST['texte_decrypter'])) AND (isset($_POST['cle_decryptage'])) AND (isset($_POST['IV1'])) AND (isset($_POST['IV2']))) {
-
- /* Recuperation des POST */
- $texte_crypter = stripslashes($_POST['texte_decrypter']);
- $cle_de_decryptage = stripslashes($_POST['cle_decryptage']);
-
- /* Recuperation de l'iv 2 */
- $iv_2 = stripslashes($_POST['IV2']);
- $iv_2 = base64_decode($iv_2);
- /* Recuperation de l'iv 1 */
- $iv_1 = stripslashes($_POST['IV1']);
- $iv_1 = base64_decode($iv_1);
-
- /*definition du 1er algorithme et du 1er mode */
- $algo_1 = "serpent";
- $mode_1 = "cbc";
-
- $td_1 = mcrypt_module_open($algo_1, "", $mode_1, "");
- mcrypt_generic_init($td_1, $cle_de_decryptage, $iv_2);
-
- /*Decryptage numero 1 */
- $decryptage_1 = mdecrypt_generic($td_1, base64_decode($texte_crypter));
- mcrypt_generic_deinit($td_1);
- mcrypt_module_close($td_1);
- $decryptage_fini_1 = $decryptage_1;
-
- /*definition du 2eme algorithme et du 2eme mode */
- $algo_2 = "rijndael-256";
- $mode_2 = "cbc";
-
- $td_2 = mcrypt_module_open($algo_2, "", $mode_2, "");
- mcrypt_generic_init($td_2, $cle_de_decryptage, $iv_1);
-
- /*Decryptage numero 2 */
- $decryptage_2 = mdecrypt_generic($td_2, base64_decode($decryptage_fini_1));
- mcrypt_generic_deinit($td_2);
- mcrypt_module_close($td_2);
- $decryptage_fini_2 = str_replace ( ">" , "›" , $decryptage_2);
- $decryptage_fini_2 = str_replace ( "<" , "‹" , $decryptage_fini_2);
- $decryptage_fini_2 = str_replace ( " " , " " , $decryptage_fini_2);
- $decryptage_fini_2 = str_replace ( "\0" , "" , $decryptage_fini_2);
- $decryptage_fini_2 = stripslashes(nl2br($decryptage_fini_2));
-
- /* Affichage du message decrypté*/
- echo "<span class='souligne'>Votre message decrypter:</span><br><br>$decryptage_fini_2<br><br>";
- }
- echo "<form action='$request_url' method='post'>\n";
- echo "Crypter ce texte :<br>\n";
- echo "<textarea name='texte_crypter' cols=50 rows=2>\n";
- echo "</textarea>\n";
- echo "<br> Avec cette clé de cryptage (entrer un court texte au hasard a retenir):<br>\n";
- echo "<input type='text' name='cle_cryptage' value=''>\n";
- echo "<input type='submit' value='Encrypter' />\n";
- echo "</form><br>\n";
- echo "<h1> Decryptage </h1>";
- echo "<form action='$request_url' method='post'>\n";
- echo "Decrypter ce texte :<br>\n";
- echo "<textarea name='texte_decrypter' cols=50 rows=2>\n";
- echo "</textarea>\n";
- echo "<br> Avec cette clé de decryptage:<br>\n";
- echo "<input type='text' name='cle_decryptage' value=''>\n";
- echo "<br> Avec ce IV(1):<br>\n";
- echo "<input type='text' name='IV1' value=''>\n";
- echo "<br> Avec ce IV(2):<br>\n";
- echo "<input type='text' name='IV2' value=''>\n";
- echo "<input type='submit' value='Decrypter' />\n";
- echo "</form><br>\n";
- echo "</div>\n";
- ?>
<?php
$request_url = $_SERVER['REQUEST_URI'];
$request_url = str_replace ( "&" , "&" , $request_url);
/* L'utilisation de cette variable dans le formulaire est obligatoire pour passer le validateur du W3C */
echo "<div id='corps'>\n";
echo "<h1> Cryptage </h1>\n";
/*Encryptage*/
if ((isset($_POST['texte_crypter'])) AND (isset($_POST['cle_cryptage']))) {
/* Recuperation des POST */
$message = stripslashes($_POST['texte_crypter']);
$key = stripslashes($_POST['cle_cryptage']);
/*definition du 1er algorithme et du 1er mode */
$algo = "rijndael-256";
$mode = "cbc";
$td = mcrypt_module_open($algo, "", $mode, "");
$iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
/*Tronquature de la cle si elle est trop grosse */
$size = mcrypt_enc_get_key_size($td);
$key = substr($key, 0, $size);
$iv_encode = base64_encode($iv);
/*Affichage de l'IV numero 1 */
echo "<span class='souligne'>Votre IV(1):</span><br><input type='text' value='$iv_encode'><br>";
/*Encryption numero 1 */
mcrypt_generic_init($td, $key, $iv);
$message_crypter_1 = mcrypt_generic($td, $message);
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
$message_crypter_fini_1 = base64_encode($message_crypter_1);
/*definition du 2eme algorithme et du 2eme mode */
$algo = "serpent";
$mode = "cbc";
$td = mcrypt_module_open($algo, "", $mode, "");
$iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
$iv_encode = base64_encode($iv);
/* Troncature de la clé */
$size = mcrypt_enc_get_key_size($td);
$key = substr($key, 0, $size);
/* Afficahge de la cle apres traitement */
echo "<span class='souligne'>Votre clé:</span><br><input type='text' value='$key'><br>";
/*Affichage de l'IV numero 2 */
echo "<span class='souligne'>Votre IV(2):</span><br><input type='text' value='$iv_encode'><br>";
/*Encryption numero 2 */
mcrypt_generic_init($td, $key, $iv);
$message_crypter_2 = mcrypt_generic($td, $message_crypter_fini_1);
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
$message_crypter_fini_2 = base64_encode($message_crypter_2);
/*Affichage du message crypter */
echo "<span class='souligne'>Votre message crypter:</span><br><textarea cols=50 rows=8>$message_crypter_fini_2</textarea><br>";
}
/* Decryptage */
if ((isset($_POST['texte_decrypter'])) AND (isset($_POST['cle_decryptage'])) AND (isset($_POST['IV1'])) AND (isset($_POST['IV2']))) {
/* Recuperation des POST */
$texte_crypter = stripslashes($_POST['texte_decrypter']);
$cle_de_decryptage = stripslashes($_POST['cle_decryptage']);
/* Recuperation de l'iv 2 */
$iv_2 = stripslashes($_POST['IV2']);
$iv_2 = base64_decode($iv_2);
/* Recuperation de l'iv 1 */
$iv_1 = stripslashes($_POST['IV1']);
$iv_1 = base64_decode($iv_1);
/*definition du 1er algorithme et du 1er mode */
$algo_1 = "serpent";
$mode_1 = "cbc";
$td_1 = mcrypt_module_open($algo_1, "", $mode_1, "");
mcrypt_generic_init($td_1, $cle_de_decryptage, $iv_2);
/*Decryptage numero 1 */
$decryptage_1 = mdecrypt_generic($td_1, base64_decode($texte_crypter));
mcrypt_generic_deinit($td_1);
mcrypt_module_close($td_1);
$decryptage_fini_1 = $decryptage_1;
/*definition du 2eme algorithme et du 2eme mode */
$algo_2 = "rijndael-256";
$mode_2 = "cbc";
$td_2 = mcrypt_module_open($algo_2, "", $mode_2, "");
mcrypt_generic_init($td_2, $cle_de_decryptage, $iv_1);
/*Decryptage numero 2 */
$decryptage_2 = mdecrypt_generic($td_2, base64_decode($decryptage_fini_1));
mcrypt_generic_deinit($td_2);
mcrypt_module_close($td_2);
$decryptage_fini_2 = str_replace ( ">" , "›" , $decryptage_2);
$decryptage_fini_2 = str_replace ( "<" , "‹" , $decryptage_fini_2);
$decryptage_fini_2 = str_replace ( " " , " " , $decryptage_fini_2);
$decryptage_fini_2 = str_replace ( "\0" , "" , $decryptage_fini_2);
$decryptage_fini_2 = stripslashes(nl2br($decryptage_fini_2));
/* Affichage du message decrypté*/
echo "<span class='souligne'>Votre message decrypter:</span><br><br>$decryptage_fini_2<br><br>";
}
echo "<form action='$request_url' method='post'>\n";
echo "Crypter ce texte :<br>\n";
echo "<textarea name='texte_crypter' cols=50 rows=2>\n";
echo "</textarea>\n";
echo "<br> Avec cette clé de cryptage (entrer un court texte au hasard a retenir):<br>\n";
echo "<input type='text' name='cle_cryptage' value=''>\n";
echo "<input type='submit' value='Encrypter' />\n";
echo "</form><br>\n";
echo "<h1> Decryptage </h1>";
echo "<form action='$request_url' method='post'>\n";
echo "Decrypter ce texte :<br>\n";
echo "<textarea name='texte_decrypter' cols=50 rows=2>\n";
echo "</textarea>\n";
echo "<br> Avec cette clé de decryptage:<br>\n";
echo "<input type='text' name='cle_decryptage' value=''>\n";
echo "<br> Avec ce IV(1):<br>\n";
echo "<input type='text' name='IV1' value=''>\n";
echo "<br> Avec ce IV(2):<br>\n";
echo "<input type='text' name='IV2' value=''>\n";
echo "<input type='submit' value='Decrypter' />\n";
echo "</form><br>\n";
echo "</div>\n";
?>
Conclusion
J'espere que ca aura servi a quelqu'un ^^
Historique
- 28 avril 2011 16:22:39 :
- probleme d'indentation
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 et decryptage d'une chaine de caractère. [ par LocalStone ]
Salut à tous ! Je cherche desepèrement une fonction, une classe ou n'importe quoi pour pouvoir crypter, puis decrypter une chaine de caractère. S'il v
cryptage et libmcrypt [ par metos ]
Bonjour, j'aimerais utiliser du cryptage AES en php avec la fonction : mcrypt_module_open. Lors du chargement de la page l'erreur suivante se produit
cryptage et decryptage de variable envoyer dans url [ par mandymoor ]
sarah,bonjour tous le monde ,le titre indique ce que je veux si quelqu'un peux m'aider je vous remercie.
fonction mcrypt bug - Comment avoir un cryptage PHP réversible et sur? [ par zzzzzz ]
Bonjour, J'ai trouvé 2 fonctions pour chiffrer du texte sur php.net (utilisant mcrypt) : function Crypter($str, $key) { # Add PKCS7 padding.
mcrypt problème d'encodage [ par zzzzzz ]
Bonjour à tous, J'utilise une fonction (trouvé sur le net) utilisant mcrypt : function Crypter($str, $key) { # Add PKCS7 padding. $block =
mcrypt : Can not create an IV with a size of less then 1 or [ par zzzzzz ]
Bonjour j'utilise 2 fonctions, une pour crypter, une pour decrypter. Pour être franc je n'y comprend pas grand chose... J'ai essayé dans un fichier
cryptage AES [ par metos ]
Bonjour, J'aurais besoin de crypter une donnée en AES avec une clé de 256bit. J'ai essayé avec la libraire mcrypte, le problème c'est qu'en utili
cryptage mot de passe [ par biloutte33 ]
Bonjour à tous,j'aimerais avoir un éclairement lol :j'ai une base de données avec un table membre et comme tout espace membre qui se respect, il y a d
Cryptage symetire et asymetrie RSA et AES [ par ba1ali ]
bonjour je cherche un code source en php de l'algorithme de cryptage RSA et AES merci d'avance
Cherche algo de cryptage [ par caviar ]
Saluté,je cherche un algo de cryptage pouvant encoder nimporte quel type de données (une image, un mp3, tu texte ...) en une suite de caractères impri
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|