PHP - MySQL [Retour au menu]
Cryptage et décryptage

Il s'agit d'un ensemble de 2 fonctions : Crypte et Decrypte qui acceptent 2 paramètres : Le texte à Crypter et la clé de cryptage. La fonction GenerationCle est utilisée par Crypte et Decrypte Cette manière de faire est particulièrement robuste car l'algorithme de cryptage utilisé est très solide. De plus, le même texte crypté à des moments différents donnera des résultats différents.

Exemple :
Texte original : Michel
Texte crypté : VBkBbFMxCz1eZV5g

et la même chose quelque seconde splus tard :
Texte original : Michel
Texte crypté : VBlRPA9tDzkHPFZo

L'explication de l'appel à ces 2 fonction est expliqué par l'exemple au bas de cette page

function GenerationCle($Texte,$CleDEncryptage)
  {
  $CleDEncryptage = md5($CleDEncryptage);
  $Compteur=0;
  $VariableTemp = "";
  for ($Ctr=0;$Ctr<strlen($Texte);$Ctr++)
    {
    if ($Compteur==strlen($CleDEncryptage))
      $Compteur=0;
    $VariableTemp.= substr($Texte,$Ctr,1) ^ substr($CleDEncryptage,$Compteur,1);
    $Compteur++;
    }
  return $VariableTemp;
  }

function Crypte($Texte,$Cle)
  {
  srand((double)microtime()*1000000);
  $CleDEncryptage = md5(rand(0,32000) );
  $Compteur=0;
  $VariableTemp = "";
  for ($Ctr=0;$Ctr<strlen($Texte);$Ctr++)
    {
    if ($Compteur==strlen($CleDEncryptage))
      $Compteur=0;
    $VariableTemp.= substr($CleDEncryptage,$Compteur,1).(substr($Texte,$Ctr,1) ^ substr($CleDEncryptage,$Compteur,1) );
    $Compteur++;
    }
  return base64_encode(GenerationCle($VariableTemp,$Cle) );
  }

function Decrypte($Texte,$Cle)
  {
  $Texte = GenerationCle(base64_decode($Texte),$Cle);
  $VariableTemp = "";
  for ($Ctr=0;$Ctr<strlen($Texte);$Ctr++)
    {
    $md5 = substr($Texte,$Ctr,1);
    $Ctr++;
    $VariableTemp.= (substr($Texte,$Ctr,1) ^ $md5);
    }
  return $VariableTemp;
  }

//Exemple de l'appel aux fonctions Crypte et Decrypte :

$Cle = "MotDePasseSuperSecret";
$MonTexte = "Mon numéro de carte de crédit est le 445.32.443.12";
$TexteCrypte = Crypte($MonTexte,$Cle);
$TexteClair = Decrypte($TexteCrypte,$Cle);

echo "Texte original : $MonTexte <Br>";
echo "Texte crypté : $TexteCrypte <Br>";
echo "Texte décrypté : $TexteClair <Br>";

---