PHP+cryptage de texte

Bonjour,

J'ai vu qu'il est possible de crypter un mot de passe dans une base de donnée.

Je me demandais s'il existe un fonction de cryptage / décryptage de texte en php...



--
"Trotti Trotta, Monsieur P, il y a des anges qui veulent un bisou..."
"Même les joujou de Monsieur P ont besoin de joujou"

4 réponses

  1. Bonjour,

    tu as la fonction crypt($text) qui crypte $text, cependant il n'existe pas de fonction de décryptage.
    De même pour les hachages avec les fonctions suivantes md5($text) et sha1($text)

    Après, tu peux créer ta propre fonction de cryptage/décryptage :-)

    Va faire un tour sur php.net ;-)

    A+
    Gaerebut
    0
    1. Contributeur
      Je pense que je vais en créer une... je l'avais déjà fais mais elle était trop lourde est sujette aux erreurs.
      J'avais, à l'époque, utilisé une liste de caractère et j'incrémentais ou décrémentais la position dans cette liste pour réaliser un semblant de cryptage...

      Je pense maintenant à utiliser l'ASCII.
      Cependant, connaissant le C, j'ai essayé de faire du transtypage... mais le PHP ne semble pas gérer ça.

      J'ai essayé:

      
      $car='A';
      echo (int)$car;
      
      


      Comme je l'aurais fais en C pour avoir le code ASCII du caractère, cependant, j'obtiens 0...
      0
      1. Re,

        tu peux tout à fait faire du transtypage comme ceci:

        <?php
        $chaine = "2000"; // Ici, $chaine vaut 2000 mais en tant que String
        $entier = (int) $chaine; // entier vaudra $chaine mais casté en tant que Integer
        // Autres possibles: (String) (Bool) (Int) (Float) etc ...
        ?>

        De plus, tu peux utiliser les 2 fonctions suivantes pour ton algorithme (renseigne toi sur php.net après):

        chr() et ord()

        A+
        Gaerebut
        0
        1. Contributeur
          J'ai crée ce script, mais lorsque je lui demande d'afficher le résultat du cryptage, ici $texte_trait... il m'affiche Array... Mais je ne trouve pas la connerie que j'ai faite.

          <p align="center">
          <form action="index.php" method="post">
          Crypter <input type="radio" name="mode" value="C" checked />
          Décrypter <input type="radio" name="mode" value="D" /><br />
          <input type="text" name="texte" /><br />
          <input type="submit" value="OK" />
          </form>
          </p>
          
          <?php
          if(isset($_POST['mode']))
          {
          	if($_POST['mode']=='C')
          		$inc = 20;
          	else
          		$inc = -20;
          	$texte_av_trait = $_POST['texte'];
          	
          	$texte_trait[] = array();
          	
          	for($p=0;$p<strlen($texte_av_trait);$p++)
          	{
          		$asc = ord($texte_av_trait[$p]);
          		$asc2 = $asc + $inc;
          		
          		if($asc2<0)
          			$asc2 = 256+$asc2;
          		else if($asc2>255)
          			$asc2 = $asc2-256;
          		$texte_trait[]=chr($asc2);
          	}
          	for($p=0;$p<strlen($texte_av_trait);$p++)
          	{
          		echo $texte_av_trait[$p]." - ".$texte_trait[$p]."<br />";
          	}
          
          	?>
          	<p align="center"><?php echo "<br />".$texte_av_trait." -> ".$texte_trait;?></p>
          
          	<?php
          }
          ?>
          


          Pourtant quand je veux l'afficher, caractères après caractères, cela fonctionne... une idée ?
          1