Carl: Folgender PHP Code. Wie geht das?

Hi Leutz,

folgender Code:

------------------------------------------------------------

function checkadmin($user=false,$pass=false){
  if (md5($user.$pass) == "7098094dfbfc937a76fbc25380fdfaff") return true;
else return false;

------------------------------------------------------------

so wie ich ihn bisher verstehe:
Dies ist eine Funktion, die prüft, ob ich
der Admin bin.(Parameter $user=false,...)
Dann kommt die "IF" Abfrage, die prüft, ob die Eingabe richtig ist. Wenn OK , dann wird reingelassen , wenn nicht, dann "FALSE".

Was mich verwirrt, ist dieses "md5" und die Zeile "7098094dfbfc937a76fbc25380fdfaff". Gehören die zusammen?
Ist es einer Art Codierverfahren?  Oder woher weiss man, was es bedeutet?

Hm.
Danke auf jeden Fall im Voraus.

Carl

  1. Hi,

    Dies ist eine Funktion, die prüft, ob ich
    der Admin bin.(Parameter $user=false,...)

    "=" ist der Zuweisungsoperator, kein Vergleichsoperator. Siehe http://de.php.net/manual/de/functions.arguments.php#functions.arguments.default

    Was mich verwirrt, ist dieses "md5" und die Zeile "7098094dfbfc937a76fbc25380fdfaff". Gehören die zusammen?
    Ist es einer Art Codierverfahren?  Oder woher weiss man, was es bedeutet?

    Das weiß man, indem man in der PHP-Dokumentation nach der md5-Funktion sucht.

    Cheatah

    --
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hi,

      "=" ist der Zuweisungsoperator, kein Vergleichsoperator. Siehe http://de.php.net/manual/de/functions.arguments.php#functions.arguments.default

      das ist klar

      Das weiß man, indem man in der PHP-Dokumentation nach der md5-Funktion sucht.

      danke

      Carl

  2. Hola !

    Was mich verwirrt, ist dieses "md5" und die Zeile "7098094dfbfc937a76fbc25380fdfaff". Gehören die zusammen?
    Ist es einer Art Codierverfahren?  Oder woher weiss man, was es bedeutet?

    irgendwie hab ich das Gefühl du möchtest ein Passwort knacken ...
    wie auch immer

    auch mit wenig Ahnung, sollte klar sein.."md5" ist offensichtlich eine PHP Funktion und dafür gibts hier ja die Funktionsreferenz
    http://www.selfphp.info/funktionsreferenz/string_funktionen/md5.php

    im Klartext, der obige Code prüft ob der mit "md5" umgewandelte String dem "70...." entspricht

    so long
    Micha

    1. Hi Micha :-)

      irgendwie hab ich das Gefühl du möchtest ein Passwort knacken ...

      ne, das Passwort ist "hamburg", bloß wusste ich nicht, wie dieses zustande kommt.

      http://www.selfphp.info/funktionsreferenz/string_funktionen/md5.php

      Danke sehr.
      Kannte ich bisher nicht

      Carl


  3. function checkadmin($user=false,$pass=false){

    na klar, ist eine Funktion, wenn sie ohne Parameter aufgerufen wird sind die Variablen auf false

    if (md5($user.$pass) == "7098094dfbfc937a76fbc25380fdfaff") return true;

    hier wird zuerst $user und $pass zusammen gefühgt, das geschiet durch den "."
    md5 ist ein art codier Methode, die den ihr übergebenen String in einen 16bit langen String umwandelt, also 32 zeichen.

    7098094dfbfc937a76fbc25380fdfaff ist die md5 kodierte Version von dem richtigen user konkateniert mit dem richtigen passwort.

    else return false;


    1. Hi,

      danke dir auch.
      Übrigens - ne nette Seite haste.

      Gruß
      Carl

  4. Hallo,

    function checkadmin($user=false,$pass=false){
      if (md5($user.$pass) == "7098094dfbfc937a76fbc25380fdfaff") return true;
    else return false;
    [...]
    so wie ich ihn bisher verstehe:
    Dies ist eine Funktion, die prüft, ob ich
    der Admin bin.(Parameter $user=false,...)

    soweit klar...

    [...}
    Was mich verwirrt, ist dieses "md5" und die Zeile "7098094dfbfc937a76fbc25380fdfaff". Gehören die zusammen?
    Ist es einer Art Codierverfahren?  Oder woher weiss man, was es bedeutet?

    md5 kann man als eine Art "Checksumme" eines
    Byte-Arrays auffassen. Ein Codierverfahren trifft es
    nicht ganz, da man die md5-Checksumme i. a. nicht
    rückwärts dekodieren kann.

    Natürlich kann man auch codieren

    if ((user=="bofh") && (pass=="topsecret"))

    dann kann aber jeder, der Leserechte auf den Sourcecode
    hat, auch gleich den Login & Passwort im Klartext
    sehen. Um dies zu verhindern tippst Du in einer
    Kommandokonsole Deiner Wahl z. B.

    echo bofhtopsecret | md5sum

    und erhältst

    a8697aeeef3bb42a93f22d1e43c3ef4

    Der Witz ist jetzt, dass Du diese Zeichenkette im
    Quelltext verwenden kannst und niemand erraten wird,
    welche Kombination $user / $pass auf dieses Resultat
    geführt hat. Sprich, wenn aus irgendeinem Grund es jemand
    geschafft hat, das CGI-Skript herunterzuladen statt
    auszuführen, wird er trotzdem nicht wissen, welche
    $user/$pass-Kombination man eingeben muss, um das
    Skript zum Laufen zu bringen.

    Viele Grüße

    Andreas

    1. Hi Andreas,

      Der Witz ist jetzt, dass Du diese Zeichenkette im
      Quelltext verwenden kannst und niemand erraten wird,
      welche Kombination $user / $pass auf dieses Resultat
      geführt hat.

      Eine tolle Sache.
      Danke für die ausführliche Antwort

      Carl