Cookie verschlüsseln (keine session)

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Cookie verschlüsseln (keine session)

    Hi Leute
    Ich such nun schon den ganzen nachmitag in diversen Forum's und auf google. Binn aber leider bis anhin nirgens fündig geworden.

    ich möchte einen kleinen userbereich erstellen.
    Wenn der eingegebene nick und das dazugehörige passwort übereinstimmen wird ein cookie gesetzt:

    setcookie ("usr", "$username", time()+86400);
    setcookie ("pwd", "$pass", time()+86400);

    Wie kann ich es anstellen, das dass cookie möglichst einfach verschlüsselt wird, und ich es beim auslesen einfach wieder entschlüsseln kann ?

    Sorry *newbie*

    Thanx schon mal zum voraus

    Nicht Tatsachen,
    sondern Meinungen über Tatsachen
    bestimmen das Handeln der Menschen.
    (Epiktet (50-138 n.Chr.)

  • #2
    ich hab über microtime() einen md5 Hash erzeugt, den ich dem User in den Cookie schreibe und an diesem erkenne ich den User wieder und trage dann alle Daten in die Session.

    Code:
    srand((double)microtime()*1000000); 
    $unique_str = md5(rand()); 
    
    echo $unique_str;
    das dingen erzeugst du bei der Anmeldung und schreibst ihm das in den Cookie! Kommt er erneut auf deine Seite, ließt du das ding aus und trägst sseine Userdaten in ne Session

    gruss

    Kommentar


    • #3
      Thanx für Deine antwort ...
      nur hilft dies mir nicht wirklich weiter (Newbie)

      wie gesagt von session habe ich keine ahnung.
      Es geht mir nur um's ver- und entschlüsseln.

      HILFEEEEE

      Nicht Tatsachen,
      sondern Meinungen über Tatsachen
      bestimmen das Handeln der Menschen.
      (Epiktet (50-138 n.Chr.)

      Kommentar


      • #4
        mußt mal schauen, bei php4 (glaube ab 4.06) ist die bibliothek für die mcrypt funktoinen dabei, damit müßte es auch gehen

        gruss

        Kommentar


        • #5
          schau mal hier:

          http://www.php.net/manual/de/ref.mcrypt.php

          ist aber auch nicht gerade ein "Anfängerthema"

          gruss

          Kommentar


          • #6
            thanx für Deine mühe
            leider habe ich in die richtung kein plan ...
            habe es gerade mal geschafft eine sql datenbank zu erstellen mit einem registrierungsformular wo nick und passwort reingeschrieben wird.

            Wie müsste den das aussehen mit dem verschlüsseln?


            fieleicht in die richtung ?
            crypt($username);
            setcookie ("usr", "$username", time()+86400);

            Nicht Tatsachen,
            sondern Meinungen über Tatsachen
            bestimmen das Handeln der Menschen.
            (Epiktet (50-138 n.Chr.)

            Kommentar


            • #7
              ne, crypt ist ne einwegverschlüsselung (kein entschlüsseln möglich)
              Schau mal in den Link

              andere Möglichkeiten der Verschlüsselungen kenne ich auch nicht mit PHP...

              gruss

              Kommentar


              • #8
                Jo der link ist guut Thanx
                Nur funtzt das beispiel script nicht

                script: schlussel.php
                <?php
                $key = "this is a very secret key";
                $input = "Let us meet at 9 o'clock at the secret place.";

                $encrypted_data = mcrypt_ecb (MCRYPT_3DES, $key, $input, MCRYPT_ENCRYPT);
                ?>

                Meldung:
                Fatal error: Call to undefined function: mcrypt_ecb() in d:\apache\htdocs\comunity\schlussel.php on line 5

                Nicht Tatsachen,
                sondern Meinungen über Tatsachen
                bestimmen das Handeln der Menschen.
                (Epiktet (50-138 n.Chr.)

                Kommentar


                • #9
                  unter windows solltest du in der Datei php.ini unter Extensions den Eintrag ";extension=php_mcrypt.dll" finden!

                  das Semikolon weg ( und dann lädt er die Bibliothek mit. Hast du den Eintrag nicht drin, mußt du entweder die Bibliothek nachladen oder du mußt auf den neuere PHP-Version umsteigen (bei 4.11 ists dabei).

                  Bei mir funzt das auch

                  gruss

                  Kommentar


                  • #10
                    jo thanx scheint zu klappen. jetzt geschiet gar nix mer er. offenbaar werden hier stunden zur ver und entschlüsselung beansprucht.

                    Trotzdehm Danke für Deine Bemühungen.
                    Nicht Tatsachen,
                    sondern Meinungen über Tatsachen
                    bestimmen das Handeln der Menschen.
                    (Epiktet (50-138 n.Chr.)

                    Kommentar


                    • #11
                      wenn du es nicht mit mcrypt schaffst, hier noch eine Alternative:

                      schreib die Passwörter in die DB schon mit crypt() verschlüsselt rein. Wenn User sich anmeldet, muß du "select * from usertab where nick='$nick' and password='$crypt_pass'" wobei $crypt_pass=crypt($password) ist. Wenn in Tabelle, dann also angemeldet -> in Cookie schreibst du den Nicknamen und das veschlüsselte Password, welches du auf folgenden Seiten nur noch direkt benutzen mußt.

                      Kann man auch mithilfe von SQL machen -> beim reinschreiben in DB "insert .... (password) values (ENCRYPT($password))" und dann beim "select ... where password=ENCRYPT($pass)"

                      Kommentar


                      • #12
                        Thanx für Deine Antwort ...

                        Ich werde diese möglichkeit ausprobieren.

                        ich habe es aber nun folgendermassen gelöst und werde es vermutlich auch so beibehalten.

                        <?php
                        // passwort entcodieren
                        $pascod = strlen($pwd);
                        for($p=0; $p<$pascod; $p++)
                        {
                        $pwdbuchst = substr($pwd,$p,1);
                        $pwdcode = ord($pwdbuchst);
                        $newcode = $pwdcode + 128;
                        $pwdchar = chr($newcode);
                        $newpwd = $newpwd.$pwdchar;
                        }
                        // benutzername entcodieren
                        $usrcod = strlen($usr);
                        for($u=0; $u<$usrcod; $u++)
                        {
                        $usrbuchst = substr($usr,$u,1);
                        $usrcode = ord($usrbuchst);
                        $newcode = $usrcode + 128;
                        $usrchar = chr($newcode);
                        $newusr = $newusr.$usrchar;
                        }
                        ?>

                        So kann ich fürs codieren und fürs entcodieren den selben code verwenden zusätzlich werden die zeichen nochmals in diesen iso (%GA) zeichen ins cookie geschrieben.

                        So ergiebt zb.
                        Joschua, êïóãèõá, und widr als %EA%EF%F3%E3%E8%F5%E1
                        ins cookie geschrieben.
                        Ich glaube dieser schutz reich mir aus.

                        Nicht Tatsachen,
                        sondern Meinungen über Tatsachen
                        bestimmen das Handeln der Menschen.
                        (Epiktet (50-138 n.Chr.)

                        Kommentar

                        Lädt...
                        X