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 4252 fois
Public
Internaute
Auteur de la publication
Fobec
Admin
Auteur de 263 articles
|BIO_PSEUDO|
Commentaires récents

Publié par jean-francois dans logiciel

Bonjour,
je suis tombe par hasard sur cette page que je trouver super. je cherche a faire quelque chose comme ca sur mon site. Et je galere depuis des jours... :(
Est-ce que tu partages le...

Publié par gilles dans logiciel

Bonjour,

j'utilise quotidiennement votre excellent logiciel complet et ergonomique.

Mais depuis quelques jours j'ai un probleme il recherche indefiniment resolution du nom de l'hote.

Publié par Kezouille dans java

Bonjour Axel,

Merci pour ce petit guide qui m'a bien aide dans ma tache. En effet j'ai developpe une petite application afin de detecter l'ajout d'un fichier une image dans un repertoire et de...

Publié par stux dans java

Génial.. C'est exactement ce que je cherchais.

Publié par ammar dans CMS

merci pour ce code , mais ce que je veux savoir c\'est es-ce que possible de récupérer la totalité de code source html de la page original.<br>merci...