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

Publié par deefaze dans CMS

Label1.Caption := format(\'Red: $%.2x, Green : $%.2x, Blue : $%.2x\',[R,G,B]);

:)

Publié par Fobec dans php5

Bonjour,
vous pouvez poster un message sur le forum, la communaut vous donnera un coup de main pour la mise en place du script.

Publié par Absolut dans news

Bonjour,
Dans l'outil de localisation d'IP, je ne comprends pas le sens de la rubrique precision dans le Rapport d'analyse de l'adresse IP ex 1/10, 9/10, bonne, ....
Merci

Publié par arthur dans java

essaye avec une while, cela devrais marcher. mais après je ne sais pas comment paramétrer. c'est toi qui voit

Publié par Arthur dans java

Salut!
J'ai repris ton code pour un projet mais en testant le programme rien ne s'affiche. Pourquoi ?
Dois-je mettre a jour quelque chose ? Importer ?
La seule modification que j'...