Publié le 05/10/2010
Auteur fobec
Réseaux sociaux
0 partages
0 tweets
0 plus
1 commentaires

Crypter un string avec l'algorithme TripleDES

Pour des raisons de sécurité, les mots de passe, des informations confidentielles ou des données privées doivent être encodés. La class TripleDesCrypter est un exemple de cryptage d'un texte en utilisant l'algorithme TripleDES.

Class TripleDesCrypter

La class utilise les API de l'extension mcrypt disponible dans PHP depuis la version 4. Bien que le module ait de multiples usages, la class est configurée pour utiliser automatiquement l'algorytme Triple Des.
<?php
/**
 * Encoder / Décoder un string avec l'algoritme TripleDES
 * @author Fobec 2010
 */
class TripleDesCrypter {
 
    /**
     * Encoder un texte
     * @param $text
     * @param $key
     * @return
     */
    static public function encode($text, $key) {
        $mcopen = @mcrypt_module_open(MCRYPT_TripleDES, "", MCRYPT_MODE_ECB, "");
        if ($mcopen == false) {
            throw new Exception("TripleDES algorithm not avaible !!!");
        }
        $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($mcopen), MCRYPT_RAND);
        $encdata = mcrypt_ecb(MCRYPT_TripleDES, $key, $text, MCRYPT_ENCRYPT, $iv);
        mcrypt_module_close($mcopen);
        $hextext = bin2hex($encdata);
        return $hextext;
    }
 
    /**
     * Decoder un texte
     * @param $text
     * @param $key
     * @return
     */
    static public function decode($text, $key) {
        $mcopen = @mcrypt_module_open(MCRYPT_TripleDES, "", MCRYPT_MODE_ECB, "");
        if ($mcopen == false) {
            throw new Exception("TripleDES algorithm not avaible !!!");
        }
        $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($mcopen), MCRYPT_RAND);
        $dectext = trim(mcrypt_ecb(MCRYPT_TripleDES, ($key), TripleDesCrypter::hex2bin($text), MCRYPT_DECRYPT, $iv));
        return $dectext;
    }
 
    /**
     * Convertir un hexa en binaire
     * @param string $data
     * @return string
     */
    static private function hex2bin($data) {
        $len = strlen($data);
        return pack("H" . $len, $data);
    }
}
?>

Cacher et retrouver un string

Lorsque l'on souhaiter cacher un mot de passe ou alors envoyer un message codé par email, il est conseillé de crypter les données au préalable.
<?php
/**
 * Exemple d'utilisation de la class TripleDesCrypter
 */
try {
    $passkey = '45zz89x';
    $text = 'Les meilleurs articles sont sur Fobec.com';
    $crypt = TripleDesCrypter::encode($text, $passkey);
    $decrypt = TripleDesCrypter::decode($crypt, $passkey);
 
    echo 'Texte en clair: ' . $text ."
";
    echo 'Texte crypte: ' . $crypt ."
";
    echo 'Texte decode: ' . $decrypt ."
";
} catch (exception $e) {
    echo $e->__toString();
}
?>

Note: TripleDES est une méthode de chiffrement, donc réversible si l'on possède la bonne clé. L'algorithme MD5 est une fonction de hachage, en théorie le texte en clair ne peut pas être retrouvé.

Ajouter un commentaire

Les champs marqués d'un * sont obligatoires, les adresses emails se sont pas publiées.
avatar caledonien

Publié par caledonien

le 12/09/2011 à 12:08:38

merci c'est parfait

A lire aussi

Réseaux sociaux
Présentation de l'article
Catégorie
php5 - script
Mise a jour
05/10/2010
Visualisation
vu 4591 fois
Public
Internaute
Auteur de la publication
Fobec
Admin
Auteur de 267 articles
|BIO_PSEUDO|
Commentaires récents

Publié par Connan dans php5

j'utilise mysql phpmyadmin et j'ai cree une table IP mais j'ai mis varchart(15) mais quese qui faut que je fasse pour stocker l'ip des joueurs qui s'inscrivent

Publié par robbie dans tuto

marche pas le code le la boite de confirmation
faut-il inclure: { dans le code ou les enlever? merci d'avance pour la reponse (si possible pas par mail merci)

Publié par fobec dans CMS

faire le menage !!!!

Publié par fffffff dans CMS

tesffff

Publié par Mohamed dans java

Merci beaucoup j'ai eu un probleme de redimensionnement des images , mes images perdaient leur qualite, ta solution m'a aide pour ca mercii