Partage
  • Partager sur Facebook
  • Partager sur Twitter

Besoin d'un cryptage reversible

qui marche !

Sujet résolu
    22 mai 2006 à 10:30:53

    Bonjour,

    j'ai besoin de réaliser un cryptage reversible, j'ai essayé avec ça :

    <?

    $cle_code = "hahahahaha";

    function encode_id($texte, $cle)
      {
      $td = mcrypt_module_open(MCRYPT_RIJNDAEL_256, "", MCRYPT_MODE_ECB, "");
      mcrypt_generic_init($td, $cle, 0);
      $temp = mcrypt_generic($td, $texte);
      mcrypt_generic_end ($td);
      return $temp;
      }

    function decode_id($texte, $cle)
      {
      $td = mcrypt_module_open(MCRYPT_RIJNDAEL_256, "", MCRYPT_MODE_ECB, "");
      mcrypt_generic_init($td, $cle, 0);
      $temp = mdecrypt_generic($td, $texte);
      mcrypt_generic_end ($td);
      return $temp;
      }

    echo $e = encode_id("test de cryptage",$cle_code);
    echo decode_id($e,$cle_code);
    ?>

    mais j'obtiens le message d'erreur suivant :

    Warning: mcrypt_generic_init(): Iv size incorrect; supplied length: 1, needed: 32 in a.php on line 8
    *** là php m'affiche bien le mot crypté mais je l'ai viré ça fait buguer le topic sinon ***
    Warning: mcrypt_generic_init(): Iv size incorrect; supplied length: 1, needed: 32 in a.php on line 17
    test de cryptage


    si quelqu'un connait un cryptage qui marche ou qu'il sait d'ou vient l'erreur... merci !
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      22 mai 2006 à 10:33:43

      Euh, à ma connaissance, la fonction mcrypt n'est pas réversible o_O !

      Par contre, ave un :
      md5();

      Je pense que ce que tu veux faire est parfaitement réalisable :) !
      • Partager sur Facebook
      • Partager sur Twitter
        22 mai 2006 à 10:34:24

        md5 n'est pas dé-hashable (ou du moins c'est pas prévu et il faut plusieurs heures :p)
        • Partager sur Facebook
        • Partager sur Twitter
          22 mai 2006 à 10:44:42

          Citation : Nonore

          Euh, à ma connaissance, la fonction mcrypt n'est pas réversible o_O !


          crypt n'est pas réversible, tout autant que md5(), mais là c'est mcrypt qui est une bibliothèque au mêm titre que GD

          ton erreur est sur le 3ème argument :

          Citation : php.net

          Le vecteur d'initialisation (VI) doit avoir la taille d'un bloc, mais vous devez lire sa taille en appelant mcrypt_enc_get_iv_size(). IV est ignoré en mode ECB. IV DOIT exister en modes CFB, CBC, STREAM, nOFB et OFB. Il doit être aléatoire et unique (mais pas secret). Le même VI doit être utilisé pour le chiffrement et le déchiffrement. Si vous ne voulez pas l'utiliser, remplissez-le de zéros, mais ce n'est pas recommandé.


          c'est une chaine de caractères et non un nombre.
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            22 mai 2006 à 10:45:15

            Attends, tu veux pouvoir déhasher ce qui a été hashé o_O ? Et pour quelle raison ? Dans quel but :o ?
            • Partager sur Facebook
            • Partager sur Twitter
              22 mai 2006 à 10:46:51

              Pour hasher et déhasher, ya plus simple, base64_encode() et base64_decode() :)
              • Partager sur Facebook
              • Partager sur Twitter
                22 mai 2006 à 10:49:22

                minirop j'ai mis un clé composée de chiffre mais ça ne change rien, c'est ça que tu voulais que je teste?


                Norore : Dans le but de faire transiter des chaines dont je n'ai pas forcément envie que certaines personnes ne voit...(ce ne sont pas des MDP quand meme!)
                • Partager sur Facebook
                • Partager sur Twitter
                Anonyme
                  22 mai 2006 à 10:51:20

                  Citation : minirop

                  Citation : Nonore

                  Euh, à ma connaissance, la fonction mcrypt n'est pas réversible o_O !




                  Fais gaffe, moi c'est Norore, avec 2 "r" :p ! Et il y a un autre membre qui s'appelle Nonore, merci de ne pas nous confondre ^^ !
                  • Partager sur Facebook
                  • Partager sur Twitter
                    22 mai 2006 à 10:55:28

                    Citation : Pl00b

                    Pour hasher et déhasher, ya plus simple, base64_encode() et base64_decode() :)


                    ce n'est pas un hash.

                    Pour crypter il faut une clef pour que le cryptage soit le plus robuste possible il faut que la clef soit de la même taille que ce que l'on veut crypter.
                    Un cryptage simple mais efficace passer ton texte en binaire et faire un XOR avec ta clef elle aussi binaire (de longueur que tu veux mais comme je l'ai di précédement plus la clef est longue plus elle est difficile à décoder).
                    • Partager sur Facebook
                    • Partager sur Twitter
                      22 mai 2006 à 10:59:51

                      merci NeoZero je ne sais pas pourquoi je n'ai pas pensé au base64 plus tot, j'avais oublié qu'elle existait celle là :p

                      sinon c'est normal qu'en base64 ça finit toujours par "=="?
                      • Partager sur Facebook
                      • Partager sur Twitter
                        22 mai 2006 à 11:19:53

                        Citation : xhark

                        minirop j'ai mis un clé composée de chiffre mais ça ne change rien, c'est ça que tu voulais que je teste?


                        tu l'avais mis entre " ? et avait elle une longueur de 32 caractères ?
                        • Partager sur Facebook
                        • Partager sur Twitter
                          22 mai 2006 à 11:29:13

                          oui j'en ai mis 32 : $cle_code = "23456123456123456123456125345666"; et ça ne marche toujours pas
                          • Partager sur Facebook
                          • Partager sur Twitter
                            22 mai 2006 à 11:44:40

                            j'ai tester ce code :
                            <?php
                            $cle_code = "hahahahaha";

                            function encode_id($texte, $cle)
                              {
                              $td = mcrypt_module_open(MCRYPT_RIJNDAEL_256, "", MCRYPT_MODE_ECB, "");
                              mcrypt_generic_init($td, $cle, '00000000000000000000000000000000');
                              $temp = mcrypt_generic($td, $texte);
                              mcrypt_generic_deinit($td);
                              return $temp;
                              }

                            function decode_id($texte, $cle)
                              {
                              $td = mcrypt_module_open(MCRYPT_RIJNDAEL_256, "", MCRYPT_MODE_ECB, "");
                              mcrypt_generic_init($td, $cle, '00000000000000000000000000000000');
                              $temp = mdecrypt_generic($td, $texte);
                              mcrypt_generic_deinit($td);
                              return $temp;
                              }

                            $e = encode_id("test de cryptage",$cle_code);
                            echo $e.'<br />';
                            echo trim(decode_id($e,$cle_code));
                            ?>

                            et çà marche parfaitement.
                            • Partager sur Facebook
                            • Partager sur Twitter
                              22 mai 2006 à 12:17:21

                              j'avais du oublier un zéro lol mais au début je pensais que tu parlais de $cle_decode en fait... merci ;)
                              • Partager sur Facebook
                              • Partager sur Twitter

                              Besoin d'un cryptage reversible

                              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                              • Editeur
                              • Markdown