tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
4
ZUGRIFFE
1952
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    aruba-x-x aruba-x-x ist offline Mitglied Gold
    Registriert seit
    Jan 2005
    Ort
    Burg Uwenstein
    Beiträge
    107
    Hallo,

    bin auf der Suche nach einer Funktion, mit der ich die Password-Funktion von MySQL imitieren kann. Also ich will für ein Passwort den gleichen 16-char-Hash erzeugen.
    Vielleicht kann mir da jemand weiterhelfen.
     
    "To know recursion, you must first know recursion"


    .:Sterngucker des 1. offiziellen Sven Uwe Fan-Clubs:.

  2. #2
    Thomas Kuse Thomas Kuse ist offline Mitglied Rubin
    Registriert seit
    Aug 2001
    Beiträge
    1.411
    MySQL erzeugt glaub ich einen MD5 Hash Wert.

    Bibliotheken gibts z.B. hier dafür:
    http://userpages.umbc.edu/~mabzug1/cs/md5/md5.html
     

  3. #3
    aruba-x-x aruba-x-x ist offline Mitglied Gold
    Registriert seit
    Jan 2005
    Ort
    Burg Uwenstein
    Beiträge
    107
    Nein, leider nicht, aber trotzdem Danke.
    Der Hash bei älteren Versionen von MySQL hat nur 16 Stellen. Ich müsste halt wissen wie der erzeugt wird.
     
    "To know recursion, you must first know recursion"


    .:Sterngucker des 1. offiziellen Sven Uwe Fan-Clubs:.

  4. #4
    Thomas Kuse Thomas Kuse ist offline Mitglied Rubin
    Registriert seit
    Aug 2001
    Beiträge
    1.411
    Lade Dir den MySQL-Quellcode herunter.
    Diese Datei beinhaltet die Funktionalität für die Password() Funktion:
    mysql-src/sql/password.c

    Ein Auszug der entsprechenden Funktion:


    mysql-5.0.21-win-src\mysql-5.0.21\sql\password.c
    Code cpp:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
    /*
        MySQL 4.1.1 password hashing: SHA conversion (see RFC 2289, 3174) twice
        applied to the password string, and then produced octet sequence is
        converted to hex string.
        The result of this function is used as return value from PASSWORD() and
        is stored in the database.
      SYNOPSIS
        make_scrambled_password()
        buf       OUT buffer of size 2*SHA1_HASH_SIZE + 2 to store hex string
        password  IN  NULL-terminated password string
    */
     
    void
    make_scrambled_password(char *to, const char *password)
    {
    }
     

  5. #5
    aruba-x-x aruba-x-x ist offline Mitglied Gold
    Registriert seit
    Jan 2005
    Ort
    Burg Uwenstein
    Beiträge
    107
    Vielen Dank, ich habs gefunden.

    Hier noch das Ergebnis, vielleicht brauchts ja mal noch jemand anders:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    
    typedef unsigned long ulong;
    typedef unsigned char uchar;
     
    void hash_password(ulong *result, const char *password)
    {
      register ulong nr=1345345333L, add=7, nr2=0x12345671L;
      ulong tmp;
      for (; *password ; password++)
      {
        if (*password == ' ' || *password == '\t')
          continue;            /* skipp space in password */
        tmp= (ulong) (uchar) *password;
        nr^= (((nr & 63)+add)*tmp)+ (nr << 8);
        nr2+=(nr2 << 8) ^ nr;
        add+=tmp;
      }
      result[0]=nr & (((ulong) 1L << 31) -1L); /* Don't use sign bit (str2int) */;
      result[1]=nr2 & (((ulong) 1L << 31) -1L);
      return;
    }
     
    void make_scrambled_password(char *to,const char *password)
    {
      ulong hash_res[2];
      hash_password(hash_res,password);
      sprintf(to,"%08lx%08lx",hash_res[0],hash_res[1]);
    }
     
    "To know recursion, you must first know recursion"


    .:Sterngucker des 1. offiziellen Sven Uwe Fan-Clubs:.

Ähnliche Themen

  1. mysql - password funktion / cookies / pw?
    Von djscorpion im Forum Relationale Datenbanksysteme
    Antworten: 2
    Letzter Beitrag: 31.03.08, 11:14
  2. MySQL Password?
    Von mafu im Forum Hosting & Webserver
    Antworten: 3
    Letzter Beitrag: 31.01.08, 13:11
  3. Antworten: 1
    Letzter Beitrag: 16.12.04, 08:38
  4. MySQL Password !****!!
    Von Freude im Forum Relationale Datenbanksysteme
    Antworten: 3
    Letzter Beitrag: 18.03.03, 13:33
  5. funktion PASSWORD in phpmyadmin
    Von egreis im Forum Relationale Datenbanksysteme
    Antworten: 1
    Letzter Beitrag: 18.01.02, 00:55