Anfänger Problem: Verschlüsseln mit Rijndael 256

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

  • h3ll
    antwortet
    Und wieso speicherst du die Werte nicht einfach in der Session, anstatt sie ständig verschlüsselt dem Browser zu schicken, damit er sie wieder an der Server zurück schickt? Ist doch nur ein unnötiger Umweg.

    Einen Kommentar schreiben:


  • Maanee9
    antwortet
    Ja.. natürlich soll der Client die Daten entschlüsselt sehen.

    Hab mir das mit nem Versteckten und Sichtbaren Textfeld vorgestellt


    Also quasi...

    $_POST["guthaben"] = entschlüsseln($_POST["guthaben"] )

    <TEXTFELD name"guthaben_visible" value "echo $_POST["guthaben"]"> Die Anzeige im Fenster

    anschließend wieder verschlüsseln

    $_POST["guthaben"] = verschlüsseln($_POST["guthaben"] )

    <TEXTFELD name"guthaben" value "echo $_POST["guthaben"]"> Das is dann ein Hidden Textfeld das die Werte anschließend übergeben soll...

    Mit der Methode wollt ich das machen. Also quasi ein verschlüsseltes und sichtbare Textfeld.

    Mir gings eigentlich jetzt nur darum wie ich die jetzt verschlüssele mit der Klasse, da ich nicht weiß wie ich sie anwende.
    Zuletzt geändert von Maanee9; 22.06.2009, 12:59.

    Einen Kommentar schreiben:


  • h3ll
    antwortet
    Aber damit du die Werte beim Client anzeigen kannst, musst du sie auch beim Client wieder enstschlüsseln. Und damit du neue Werte posten kannst, musst die sie am Client wieder auch verschlüsseln. Oder wie hast du dir das vorgestellt? Ansonsten sieht der Benutzer ja nur verschlüsselten Zeichensalat.

    Einen Kommentar schreiben:


  • Maanee9
    antwortet
    Ich zeigs einfach mal anhand meines Glückomats...
    http://war-of-races.de/TEST/Zufallszahlen.php

    Hier giebt man seine Werte ein und hatt ein gewisses Guthaben.
    Man stellt sich ein um wie viel man Spielen kann.. wie viel verschiedene zahlen es geben soll und wie viele Richtig sein müssen.

    Dann werden die Felder bei mir mit POST auf sich selber übertragen und in die Funktionen eingesetzt und das Ergebnis ausgegeben.
    Das kann man natürlich beliebig wiederholen.

    Und genau die Werte sollen jetzt damit verschlüsselt übertragen werden.

    Einen Kommentar schreiben:


  • h3ll
    antwortet
    Von wo wohin willst du die verschlüsselten Werte übertragen? Wenn du die Werte nur am Server verwendest, brauchst du sie nicht verschlüsseln.

    Einen Kommentar schreiben:


  • Maanee9
    antwortet
    Zitat von h3ll Beitrag anzeigen
    Und wie willst du es am Client verschlüsseln? Mit Javascript? Lässt sich sehr leicht umgehen. Mit Flash? Lässt sich dekompilieren.

    Blubb... versteh ich jetzt nicht ganz.
    Wieso Client ?

    Der Client soll ja nur die Verschlüsselten Werte übertragen... der Rest wird doch nur Serverseitig behandelt.. Oder lieg ich da jetzt falsch.
    Zuletzt geändert von Maanee9; 22.06.2009, 12:32.

    Einen Kommentar schreiben:


  • h3ll
    antwortet
    Zitat von Maanee9 Beitrag anzeigen
    Ok. Das Passwörter allgemein nicht so gespeichert werden sollen hab ich schon gehört. (Will ich ja auch eigentlich noch gar nicht)

    Mir gehts jetzt nur darum das ich ein kleines Onlinegame machen will... also nix überagendes oder so.
    Es geht nur darum das ich z.B. wenn ich nen Slotautomaten progrmmiere, der z.B. 5 Geldheiten als Guthaben hat, der Spieler damit spielt und verliert das neue Guthaben wieder per verschlüsselten _POST["Guthaben"] übertragen wird.
    Und wie willst du es am Client verschlüsseln? Mit Javascript? Lässt sich sehr leicht umgehen. Mit Flash? Lässt sich dekompilieren.

    Einen Kommentar schreiben:


  • Maanee9
    antwortet
    Ok. Das Passwörter allgemein nicht so gespeichert werden sollen hab ich schon gehört. (Will ich ja auch eigentlich noch gar nicht)

    Mir gehts jetzt nur darum das ich ein kleines Onlinegame machen will... also nix überagendes oder so.
    Es geht nur darum das ich z.B. wenn ich nen Slotautomaten progrmmiere, der z.B. 5 Geldheiten als Guthaben hat, der Spieler damit spielt und verliert das neue Guthaben wieder per verschlüsselten _POST["Guthaben"] übertragen wird.

    Nö.. hab leider keinerlei Dokumentation dazu. Da gabs nur die Datei ohne irgendwelche Infos oder sonst was dazu.

    Darum wollte ich auch fragen ob jemand weiß, wie ich damit die Werte einer Variable verschlüssle und wieder entschlüssle.

    Vll kann mich auch jemand auf ein ähnliches Script hinweisen das diesen Zweck erfüllen würde, falls es mit dem obigen gar nicht funktioniert.

    Einen Kommentar schreiben:


  • wahsaga
    antwortet
    Mal abgesehen vom konkreten Problem:

    Passwörter sollte man nicht verschlüsseln - denn dann kann sie auch ein Angreifer, der Zugang zu den Daten enthält, wieder entschlüsseln.

    Stattdessen sollte man sie unter Zuhilfenahme eines zufälligen Salt Hashen. Hash-Funktionen liefern einen hinreichend eindeutigen Wert, und haben aber keine "Umkehrfunktion". MD5 wurde lange Zeit dafür benutzt, gilt mit heutiger Rechenpower allerdings als angreifbar - deshalb benutzt man aktuell SHA1 oder noch "stärkere" Hash-Algorithmen.

    Allerdings weiß ich jetzt nicht ganz wie ich einen Variablen Wert jetzt damit Verschlüssle und Entschlüssle.
    Gibt's denn keine Dokumentation zu der Klasse?

    Einen Kommentar schreiben:


  • Maanee9
    hat ein Thema erstellt Anfänger Problem: Verschlüsseln mit Rijndael 256.

    Anfänger Problem: Verschlüsseln mit Rijndael 256

    Hallo erstmal,
    Ich habe erst vor ca 4 Wochen begonnen mit PHP ein bisschen zu Programmieren und bin deshalb noch sehr grün hinter den Ohren.
    Als Lektüre verwende ich hierfür
    PHP5 / MYSQL 5 von Matthias und Caroline Kannengieser
    .
    Da ich momentan noch keinerlei Ahnung von Klassen habe, da das erst später im Buch dran kommt und ich das Buch nicht Kreuz und Quer lesen will, habe ich eine Frage bezüglich einer Klasse mit Rijndael Verschlüsselung 256.
    (Ich schreib neben den Lesen natürlich immer wieder ein paar Scripts zwecks Übung)

    Ich habe mir bereits ein paar Formularseiten gemacht in der ich Daten per POST auf andere Seiten sowie in eine SQL DB überträge.

    Da ich z.B. Passwörter aber verschlüsselt Übertragen bzw in der DB ablegen will bin ich per Google auf eine Funktionen/Klasse gestoßen das meine Zwecke erfüllen sollte.
    Allerdings weiß ich jetzt nicht ganz wie ich einen Variablen Wert jetzt damit Verschlüssle und Entschlüssle. (PS: Habe es in einer extra Datei und nur per Include eingefügt.)

    Hier die Funktionen/Klasse:

    PHP-Code:
    <?php
    ///////////////////////////////////////////////////
    //    A Encryption/Decryption CLASS with Rijndael 256    
    //    By Ismet Ozalp
    //  16.03.2005
    //  Please Do not remove this header
    ///////////////////////////////////////////////////
    class pWord {
        var 
    $mykey "MyKey";
        function 
    getEncryptedPass($len){
            
    $pass $this->makeRandomPassword($len);
            return 
    $this->linencrypt($pass);
        }
        function 
    linencrypt($pass) {
            
    $iv_size mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256MCRYPT_MODE_ECB); //get vector size on ECB mode 
            
    $iv mcrypt_create_iv($iv_sizeMCRYPT_RAND); //Creating the vector
            
    $cryptedpass mcrypt_encrypt (MCRYPT_RIJNDAEL_256$this->mykey$passMCRYPT_MODE_ECB$iv); //Encrypting using MCRYPT_RIJNDAEL_256 algorithm 
        
    return $cryptedpass;
        }

        function 
    lindecrypt($enpass) {
            
    $iv_size mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256MCRYPT_MODE_ECB); 
            
    $iv mcrypt_create_iv($iv_sizeMCRYPT_RAND);
            
    $decryptedpass mcrypt_decrypt (MCRYPT_RIJNDAEL_256$this->mykey$enpassMCRYPT_MODE_ECB$iv); //Decrypting...
        
    return rtrim($decryptedpass);
        }
        function 
    makeRandomPassword($len) { 
              
    $salt "ABCDEFGHJKLMNPRSTUVWXYZ0123456789abchefghjkmnpqrstuvwxyz"
              
    srand((double)microtime()*1000000); 
            for(
    $i 0;$i $len;$i++) { 
                
    $num rand() % 56
                
    $tmp substr($salt$num1); 
                
    $pass $pass $tmp
            } 
        return 
    $pass
        }

    ?>
    Ich bräuchte jetzt einfach nur ne kurze Erklärung wie ich es Verwende, wenn z.B.
    $Geheim = "Darf niemand wissen"
    ist.

    Vielen dank schon mal für eure Hilfe.
    Zuletzt geändert von Maanee9; 22.06.2009, 14:05.
Lädt...
X