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

Publié par Ludwig dans tuto

Bonjour,
Il me semble que les plugins de gestion d'images sont payants pour TinyMCE et CKeditor, est-ce toujours le cas ?
Il manque amha l'excellent Xinha dans cette liste, qui lui est Open Sour...

Publié par Kachwahed dans CMS

Merci, ca marche avec moi, mais apès avoir changer:
Edit1.Text := Format('%d bits, %d x %d',[Bits, HRes, VRes]);
par:
Edit1.Text := Format('%d bits, %d x %d',[Bits, HorizRes, VertRes]);...

Publié par Lathois dans CMS

super impec <br>ca marche du feu de ZEUS<br>depuis le temps que je cherchais ca<br>j ai enfin trouve<br><br>merci Athois

Publié par Daxentuut dans java

Avec les imports c'est mieux :

import java.awt.AWTException
import java.awt.Robot
import java.awt.event.KeyEvent
import java.io.IOException
import java.util.logging.Level
import...

Publié par fobec dans tuto

Pour le script fonctionne, renseigner les constantes $SITE_PATH et $CACHE_PATH. Remplacer les valeurs avec les chemins de son propre site.