ERLEDIGT
JA
JA
ANTWORTEN
4
4
ZUGRIFFE
1952
1952
EMPFEHLEN
-
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:.
-
15.05.06 13:12 #2
- 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
-
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:.
-
15.05.06 18:10 #4
- 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) { }
-
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
-
mysql - password funktion / cookies / pw?
Von djscorpion im Forum Relationale DatenbanksystemeAntworten: 2Letzter Beitrag: 31.03.08, 11:14 -
MySQL Password?
Von mafu im Forum Hosting & WebserverAntworten: 3Letzter Beitrag: 31.01.08, 13:11 -
Hibernate - Password() Funktion von MySQL nutzbar?
Von webmagier im Forum JavaAntworten: 1Letzter Beitrag: 16.12.04, 08:38 -
MySQL Password !****!!
Von Freude im Forum Relationale DatenbanksystemeAntworten: 3Letzter Beitrag: 18.03.03, 13:33 -
funktion PASSWORD in phpmyadmin
Von egreis im Forum Relationale DatenbanksystemeAntworten: 1Letzter Beitrag: 18.01.02, 00:55





Zitieren
Login






