Pruefen ob User schon vorhanden
Pruefen ob User schon vorhanden
am 25.03.2005 00:08:13 von fabio.marti
Hallo NG
Habe wieder mal eine Frage, die den ganzen Abend gekostet hat: Ich
erfasse User mittels eines Formulars. Und ich will nicht, dass man
User doppelt erfassen kann. Nach der Uebergabe der Formulardaten
sollte das Script zuerst prüfen, ob der User schon vorhanden ist und
dann erst den INSERT ausführen (der funktioniert wenigstens). Der
Teil, der Probleme bereitet ist dieser:
Habe schon 100 Variationen probiert. Das ist die letzte. Entweder kann
ich immer wieder den gleichen User erfassen oder gar keinen.
$tmp_exist = mysql_query ("SELECT user FROM benutzer WHERE
'$user'=user");
$exist=mysql_fetch_array($tmp_exist))
#Prüft ob User existiert
if ($exist==1)
{
User existiert
}
else.....
Danke für eure Tips
Fabio Marti
Re: Pruefen ob User schon vorhanden
am 25.03.2005 00:36:32 von Kai Ruhnau
Fabio wrote:
^^^^^
Bitte reparieren.
> Habe wieder mal eine Frage, die den ganzen Abend gekostet hat: Ich
> erfasse User mittels eines Formulars. Und ich will nicht, dass man
> User doppelt erfassen kann. Nach der Uebergabe der Formulardaten
> sollte das Script zuerst prüfen, ob der User schon vorhanden ist und
> dann erst den INSERT ausführen (der funktioniert wenigstens). Der
> Teil, der Probleme bereitet ist dieser:
> Habe schon 100 Variationen probiert. Das ist die letzte. Entweder kann
> ich immer wieder den gleichen User erfassen oder gar keinen.
>
> $tmp_exist = mysql_query ("SELECT user FROM benutzer WHERE
> '$user'=user");
> $exist=mysql_fetch_array($tmp_exist))
s/fetch_array/num_rows/
> #Prüft ob User existiert
> if ($exist==1)
>
> {
> User existiert
> }
> else.....
HTH und Grüße
Kai
--
This signature is left as an exercise for the reader.
Unsatz des Jahres:
$POLITIKER ruft $PARTEI zur Geschlossenheit.
Re: Pruefen ob User schon vorhanden
am 25.03.2005 00:44:58 von Jan Wehe
Fabio schrieb:
> Hallo NG
>
> Habe wieder mal eine Frage, die den ganzen Abend gekostet hat: Ich
> erfasse User mittels eines Formulars. Und ich will nicht, dass man
> User doppelt erfassen kann. Nach der Uebergabe der Formulardaten
> sollte das Script zuerst prüfen, ob der User schon vorhanden ist und
> dann erst den INSERT ausführen (der funktioniert wenigstens). Der
> Teil, der Probleme bereitet ist dieser:
> Habe schon 100 Variationen probiert. Das ist die letzte. Entweder kann
> ich immer wieder den gleichen User erfassen oder gar keinen.
>
> $tmp_exist = mysql_query ("SELECT user FROM benutzer WHERE
> '$user'=user");
> $exist=mysql_fetch_array($tmp_exist))
>
> #Prüft ob User existiert
> if ($exist==1)
>
> {
> User existiert
> }
> else.....
>
>
> Danke für eure Tips
> Fabio Marti
Ich mach das immer so:
$sql = mysql_query ("SELECT user FROM benutzer WHERE username =
'$_POST[username]");
if(mysql_num_rows($sql) == 0) {
// User existiert nicht...
}
else {
// User existiert bereits...
}
Re: Pruefen ob User schon vorhanden
am 25.03.2005 00:46:58 von Jan Wehe
Jan Wehe schrieb:
> Fabio schrieb:
>
>> Hallo NG
>>
>> Habe wieder mal eine Frage, die den ganzen Abend gekostet hat: Ich
>> erfasse User mittels eines Formulars. Und ich will nicht, dass man
>> User doppelt erfassen kann. Nach der Uebergabe der Formulardaten
>> sollte das Script zuerst prüfen, ob der User schon vorhanden ist und
>> dann erst den INSERT ausführen (der funktioniert wenigstens). Der
>> Teil, der Probleme bereitet ist dieser:
>> Habe schon 100 Variationen probiert. Das ist die letzte. Entweder kann
>> ich immer wieder den gleichen User erfassen oder gar keinen.
>>
>> $tmp_exist = mysql_query ("SELECT user FROM benutzer WHERE
>> '$user'=user");
>> $exist=mysql_fetch_array($tmp_exist))
>>
>> #Prüft ob User existiert
>> if ($exist==1)
>>
>> {
>> User existiert
>> }
>> else.....
>>
>>
>> Danke für eure Tips
>> Fabio Marti
>
>
> Ich mach das immer so:
>
> $sql = mysql_query ("SELECT user FROM benutzer WHERE username =
> '$_POST[username]");
>
> if(mysql_num_rows($sql) == 0) {
> // User existiert nicht...
> }
> else {
> // User existiert bereits...
> }
Natürlich prompt ein ' vergessen... also nochmal!
$sql = mysql_query("SELECT user FROM benutzer WHERE username =
'$_POST[username]'");
if(mysql_num_rows($sql) == 0) {
// User existiert nicht...
}
else {
// User existiert bereits...
}
Re: Pruefen ob User schon vorhanden
am 25.03.2005 01:14:49 von Joerg Behrens
"Jan Wehe" schrieb im Newsbeitrag
news:424351ce$0$11478$9b4e6d93@newsread2.arcor-online.net...
> Jan Wehe schrieb:
> > Fabio schrieb:
> >
> >> Hallo NG
> >>
> >> Habe wieder mal eine Frage, die den ganzen Abend gekostet hat: Ich
> >> erfasse User mittels eines Formulars. Und ich will nicht, dass man
> >> User doppelt erfassen kann. Nach der Uebergabe der Formulardaten
> >> sollte das Script zuerst prüfen, ob der User schon vorhanden ist und
> >> dann erst den INSERT ausführen (der funktioniert wenigstens). Der
> >> Teil, der Probleme bereitet ist dieser
[..]
> $sql = mysql_query("SELECT user FROM benutzer WHERE username =
> '$_POST[username]'");
Gefahr der SQL Injektion also bitte aufpassen und die Eingaben entsprechend
Filtern und mysql_real_escape_string() verwenden.
> if(mysql_num_rows($sql) == 0) {
> // User existiert nicht...
> }
> else {
> // User existiert bereits...
> }
Ausgangefrage war ob schon ein entsprechender Datensatz in der DB existiert
und somit stellt sich die Frage warum die DB DAS nicht einfachgefragt wird.
Jetzt sagt man der DB sie solle alle Datensaetze mit einer ensprechenden
Bedingung liefern. Das koennten im schlimmsten Fall auch mal ganz viele
sein. Desweiteren ist die Methode MySQL spezifisch und funkt. NICHT wenn man
unbuffered Querys verwendet.
Also
$sql = 'select count(*) as anzahl from table where user = 'foobar'";
Nun kann diese EINE resultset gefetcht werden und es enhaelt in
$row['anzahl'] einen Wert mit welchen weiter gearbeitet werden kann.
Anzumerken ist hier nur noch das genau wie bei den vorherigen Loesungen die
Gefahr einer Race Condition besteht. Somit waere die richtige Loesung das
besagte Feld mit einem 'unique' zubelegen und beim eintragen einen Fehler
entsprechend abzufangen. Alternative ist ein Look auf die Tabelle solange
mit ihr gearbeitet wird.
Gruss
Joerg
--
TakeNet GmbH Mobil: 0171/60 57 963
D-97080 Wuerzburg Tel: +49 931 903-2243
Alfred-Nobel-Straße 20 Fax: +49 931 903-3025
Re: Pruefen ob User schon vorhanden
am 25.03.2005 11:17:35 von Abitos Schrelb
Jan Wehe wrote:
>
> Natürlich prompt ein ' vergessen... also nochmal!
>
> $sql = mysql_query("SELECT user FROM benutzer WHERE username =
> '$_POST[username]'");
>
> if(mysql_num_rows($sql) == 0) {
> // User existiert nicht...
> }
> else {
> // User existiert bereits...
> }
Haben wir da nicht noch etwas vergessen? Vieleicht eine Überprüfung der
empfangenen Daten? Wir wollen doch nicht, dass jemand unser Script kapert.
Besonders bequem wäre natürlich ein Datenbank Feld dass einen MD5 Hash
des Usernamens enthält. Dies vereinfacht die überprüfung, verbraucht
aber etwas mehr Speicher.
mfg Tobias
--
Alle eMails an die genannte Adresse landen in /dev/null
Kontaktinfos auf www.schrelb.de
Re: Pruefen ob User schon vorhanden
am 25.03.2005 12:05:21 von Johannes Vogel
Hi Abitos
Abitos Schrelb wrote:
> Jan Wehe wrote:
>> Natürlich prompt ein ' vergessen... also nochmal!
>> $sql = mysql_query("SELECT user FROM benutzer WHERE username =
>> '$_POST[username]'");
> Haben wir da nicht noch etwas vergessen? Vieleicht eine Überprüfung der
> empfangenen Daten? Wir wollen doch nicht, dass jemand unser Script kapert.
ACK
> Besonders bequem wäre natürlich ein Datenbank Feld dass einen MD5 Hash
> des Usernamens enthält. Dies vereinfacht die überprüfung, verbraucht
> aber etwas mehr Speicher.
Welchen Sinn soll es haben, jedesmal erst den MD5 Hash zu berechnen? Der
Username ist ja ein offenes Feld, auf das man Einsicht haben soll.
Anders sieht es beim Passwort aus.
SCNR, Johannes
Re: Pruefen ob User schon vorhanden
am 25.03.2005 12:21:46 von Abitos Schrelb
Johannes Vogel wrote:
>
> Welchen Sinn soll es haben, jedesmal erst den MD5 Hash zu berechnen? Der
> Username ist ja ein offenes Feld, auf das man Einsicht haben soll.
> Anders sieht es beim Passwort aus.
Der Grund bei mir ist reine Bequemlichkeit :D. Daneben kann ich einem
MD5 Hash uneingeschränkt trauen. Eine MD5 Hash Berechnung dauert auch
nicht soooo lange. Ungemessen schätze ich, dass man (für einen
Benutzernamen) auf einem aktuellen System unter 1ms benötigt.
Man könnte den Hash z.B. auch als Primärschlüssel der Tabelle verwenden.
mfg Tobias
--
Alle eMails an die genannte Adresse landen in /dev/null
Kontaktinfos auf www.schrelb.de
Re: Pruefen ob User schon vorhanden
am 25.03.2005 14:31:00 von Johannes Vogel
Hi Abitos
Abitos Schrelb wrote:
> Johannes Vogel wrote:
>>Welchen Sinn soll es haben, jedesmal erst den MD5 Hash zu berechnen? Der
>>Username ist ja ein offenes Feld, auf das man Einsicht haben soll.
>>Anders sieht es beim Passwort aus.
> Der Grund bei mir ist reine Bequemlichkeit :D. Daneben kann ich einem
> MD5 Hash uneingeschränkt trauen. Eine MD5 Hash Berechnung dauert auch
> nicht soooo lange. Ungemessen schätze ich, dass man (für einen
> Benutzernamen) auf einem aktuellen System unter 1ms benötigt.
> Man könnte den Hash z.B. auch als Primärschlüssel der Tabelle verwenden.
Der Username ist der gängige eindeutige Schlüssel eines Users. Kaum
jemand möchte in IDs miteinander kommunizieren. Wenn also der User
meint, sein Username sei "jvogel" und du diesen erst hashen musst, um
seine Daten zu kriegen, macht das wenig Sinn. Weshalb auch? Der Username
ist eine oft öffentlich zugängliche Identifikation.
Bequemlichkeit inwiefern? Sich keine Gedanken machen zu müssen, wie
gross das Feld maximal sein darf? Charset-Probleme auszuräumen? Wenn
dies Gründe dafür sind, solltest du dich genauer mit diesen Themen
befassen. Das sind keine Hürden, sondern Features! :)
Johannes
Re: Pruefen ob User schon vorhanden
am 25.03.2005 17:31:31 von Patrick Diddens
"Abitos Schrelb" schrieb:
> Johannes Vogel wrote:
>>
>> Welchen Sinn soll es haben, jedesmal erst den MD5 Hash zu
>> berechnen? Der Username ist ja ein offenes Feld, auf das man
>> Einsicht haben soll.
>> Anders sieht es beim Passwort aus.
>
> Der Grund bei mir ist reine Bequemlichkeit :D. Daneben kann ich
> einem MD5 Hash uneingeschränkt trauen. Eine MD5 Hash
> Berechnung dauert auch nicht soooo lange. Ungemessen schätze
> ich, dass man (für einen Benutzernamen) auf einem aktuellen System
> unter 1ms benötigt.
Wieso kannst du einem Hash uneingeschränkt trauen? Wenn der
Benutzername eindeutig ist, muss es der Hashwert von 2 absolut
verschiedenen Namen nicht zwingend sein.
Selbst wenn du den MD5-Hash des Benutzers als effektiven Be-
nutzernamen benutzt, wo ist der Sinn? Ob ich jetzt pdiddens oder
a29d7b250fbe8a232a1ed26e181d3270 als Benutzername habe
ist imho egal.
Ich wäre dir wirklich dankbar wenn du mir die Logik erklären
kannst warum genau ein MD5-Hash vertrauenswürdiger ist als
ein eindeutiger Benutzername.
> Man könnte den Hash z.B. auch als Primärschlüssel der Tabelle
> verwenden.
Dir ist aber klar, dass es n Werte gibt für die der MD5-Hash
gleich ist? Sicher, es kommt in der Praxis selten vor, aber es
ist nunmal möglich.
patrick
Re: Pruefen ob User schon vorhanden
am 26.03.2005 00:17:45 von Abitos Schrelb
Patrick Diddens wrote:
> Wieso kannst du einem Hash uneingeschränkt trauen? Wenn der
> Benutzername eindeutig ist, muss es der Hashwert von 2 absolut
> verschiedenen Namen nicht zwingend sein.
> Selbst wenn du den MD5-Hash des Benutzers als effektiven Be-
> nutzernamen benutzt, wo ist der Sinn? Ob ich jetzt pdiddens oder
> a29d7b250fbe8a232a1ed26e181d3270 als Benutzername habe
> ist imho egal.
> Ich wäre dir wirklich dankbar wenn du mir die Logik erklären
> kannst warum genau ein MD5-Hash vertrauenswürdiger ist als
> ein eindeutiger Benutzername.
Da ich nach einem md5 (xy) einen klar definierten Wert habe. Und
keinerlei Überprüfungen auf syntaktische Korrektheit der Variablen mehr
vornehmen muss. Damit hätte ich eine Möglichkeit für SQL Injections
schon abgeschafft.
> Dir ist aber klar, dass es n Werte gibt für die der MD5-Hash
> gleich ist? Sicher, es kommt in der Praxis selten vor, aber es
> ist nunmal möglich.
Hash Kolissionen sind in der sicher kein Problem. Da ja beim erstellen
des Benutzers abgefragt wird ob ein solcher Hashwert schon existiert.
>
> patrick
>
>
--
Alle eMails an die genannte Adresse landen in /dev/null
Kontaktinfos auf www.schrelb.de
Re: Pruefen ob User schon vorhanden
am 26.03.2005 03:36:01 von Johannes Vogel
Hi Abitos
Abitos Schrelb wrote:
> Patrick Diddens wrote:
>>Ich wäre dir wirklich dankbar wenn du mir die Logik erklären
>>kannst warum genau ein MD5-Hash vertrauenswürdiger ist als
>>ein eindeutiger Benutzername.
> Da ich nach einem md5 (xy) einen klar definierten Wert habe. Und
> keinerlei Überprüfungen auf syntaktische Korrektheit der Variablen mehr
> vornehmen muss. Damit hätte ich eine Möglichkeit für SQL Injections
> schon abgeschafft.
Erst denken, dann schreiben, dann denken und erst senden, wenn du sicher
bist, dass du das schreiben möchtest.
Beispiel:
$sql = "insert into tabelle (username) value (md5('$hallo'))";
So, und nun schreib ich vorher in $hallo:
$hallo = "')); drop table tabelle; ";
$hallo.= "insert into tabelle (username) value (md5('root";
Wieso solltest du die Probleme nicht haben?
>>Dir ist aber klar, dass es n Werte gibt für die der MD5-Hash
>>gleich ist? Sicher, es kommt in der Praxis selten vor, aber es
>>ist nunmal möglich.
> Hash Kolissionen sind in der sicher kein Problem. Da ja beim erstellen
> des Benutzers abgefragt wird ob ein solcher Hashwert schon existiert.
Es macht noch immer keinen Sinn, Logins in Hashs zu speichern. Im
Gegenteil, die Methode verbraucht mehr Ressourcen (CPU und welcher
Username ist schon 32 Zeichen lang?)!
HTH, Johannes
Re: Pruefen ob User schon vorhanden
am 26.03.2005 09:25:57 von Abitos Schrelb
Johannes Vogel wrote:
> Erst denken, dann schreiben, dann denken und erst senden, wenn du sicher
> bist, dass du das schreiben möchtest.
Ich wollte das schon schreiben.
> Beispiel:
> $sql = "insert into tabelle (username) value (md5('$hallo'))";
>
> So, und nun schreib ich vorher in $hallo:
> $hallo = "')); drop table tabelle; ";
> $hallo.= "insert into tabelle (username) value (md5('root";
>
> Wieso solltest du die Probleme nicht haben?
Weil ich den Hash mit php berechnen lasse und mit dem Wert weiter
Arbeite. Die Datenbank berechnet den Hash zwar schneller, jedoch muss
ich dann den gesendeten Wert wieder prüfen.
>>> Dir ist aber klar, dass es n Werte gibt für die der MD5-Hash
>>> gleich ist? Sicher, es kommt in der Praxis selten vor, aber es
>>> ist nunmal möglich.
>>
>> Hash Kolissionen sind in der sicher kein Problem. Da ja beim erstellen
>> des Benutzers abgefragt wird ob ein solcher Hashwert schon existiert.
>
>
> Es macht noch immer keinen Sinn, Logins in Hashs zu speichern. Im
> Gegenteil, die Methode verbraucht mehr Ressourcen (CPU und welcher
> Username ist schon 32 Zeichen lang?)!
Och das verschwende ich gern.
mfg Tobias
--
Alle eMails an die genannte Adresse landen in /dev/null
Kontaktinfos auf www.schrelb.de
Re: Pruefen ob User schon vorhanden
am 26.03.2005 10:45:45 von Kai Ruhnau
Abitos Schrelb wrote:
> Johannes Vogel wrote:
>>Beispiel:
>>$sql = "insert into tabelle (username) value (md5('$hallo'))";
>>
>>So, und nun schreib ich vorher in $hallo:
>>$hallo = "')); drop table tabelle; ";
>>$hallo.= "insert into tabelle (username) value (md5('root";
>>
>>Wieso solltest du die Probleme nicht haben?
>
>
> Weil ich den Hash mit php berechnen lasse und mit dem Wert weiter
> Arbeite. Die Datenbank berechnet den Hash zwar schneller, jedoch muss
> ich dann den gesendeten Wert wieder prüfen.
Was ist der Unterschied zwischen einem mysql_real_escape_string und
einer anschließenden lesbaren Datenbank und einer Hash-Funktion in PHP,
deren Ergebnis anschließend in die Datenbank geschrieben wird?
mysql_real_escape_string: Genau ein Funktionsaufruf um gefährliche
Zeichen rauszufiltern.
Hash-Funktion: Genau ein Funktionsaufruf um gefährliche Zeichen
rauszufiltern und noch ein bischen mehr.
Bloß dass das hashen länger dauert und zu kryptischem Datenbestand
führt, den man nicht "mal eben" mit geeigneten, vorhandenen Werkzeugen
verändern kann.
Wo ist der Vorteil?
Grüße
Kai
--
This signature is left as an exercise for the reader.
Unsatz des Jahres:
$POLITIKER ruft $PARTEI zur Geschlossenheit.
Re: Pruefen ob User schon vorhanden
am 26.03.2005 12:50:42 von Patrick Diddens
"Abitos Schrelb" schrieb:
> Patrick Diddens wrote:
>> Ich wäre dir wirklich dankbar wenn du mir die Logik erklären
>> kannst warum genau ein MD5-Hash vertrauenswürdiger ist
>> als ein eindeutiger Benutzername.
>
> Da ich nach einem md5 (xy) einen klar definierten Wert habe.
Den kannst du prinzipiell nicht haben weil n Bytefolgen den
gleichen MD5-Hash haben. Ich sehe den Punkt einfach nicht
und stimme da mit Johannes Vogel überein.
patrick
Re: Pruefen ob User schon vorhanden
am 26.03.2005 14:20:15 von Niels Braczek
Patrick Diddens schrieb:
> "Abitos Schrelb" schrieb:
>>Patrick Diddens wrote:
>>
>>>Ich wäre dir wirklich dankbar wenn du mir die Logik erklären
>>>kannst warum genau ein MD5-Hash vertrauenswürdiger ist
>>>als ein eindeutiger Benutzername.
>>
>>Da ich nach einem md5 (xy) einen klar definierten Wert habe.
>
> Den kannst du prinzipiell nicht haben weil n Bytefolgen den
> gleichen MD5-Hash haben. Ich sehe den Punkt einfach nicht
> und stimme da mit Johannes Vogel überein.
Doch, der Hashwert ist eindeutig bestimmt und somit klar definiert. Was
du meinst ist, dass er nicht eineindeutig (also umkehrbar) ist. Das ist
aber etwas ganz anderes.
MfG
Niels
Re: Pruefen ob User schon vorhanden
am 26.03.2005 14:46:42 von Abitos Schrelb
Hash Kolissionen sind in der sicher kein Problem. Da ja beim erstellen
des Benutzers abgefragt wird ob ein solcher Hashwert schon existiert.
(Stand weiter unten in dem Text den du nicht ganz gelesen hast.)
mfg Tobias
--
Alle eMails an die genannte Adresse landen in /dev/null
Kontaktinfos auf www.schrelb.de
Re: Pruefen ob User schon vorhanden
am 26.03.2005 15:22:47 von Patrick Diddens
"Niels Braczek" schrieb:
> Patrick Diddens schrieb:
>> "Abitos Schrelb" schrieb:
>>>Patrick Diddens wrote:
>>>
>>>>Ich wäre dir wirklich dankbar wenn du mir die Logik erklären kannst
>>>>warum genau ein MD5-Hash vertrauenswürdiger ist als ein eindeutiger
>>>>Benutzername.
>>>
>>>Da ich nach einem md5 (xy) einen klar definierten Wert
>>>habe.
>>
>> Den kannst du prinzipiell nicht haben weil n Bytefolgen den gleichen
>> MD5-Hash haben. Ich sehe den Punkt einfach nicht und stimme da mit
>> Johannes Vogel überein.
>
> Doch, der Hashwert ist eindeutig bestimmt und somit klar
> definiert. Was du meinst ist, dass er nicht eineindeutig (also umkehrbar)
> ist. Das ist aber etwas ganz anderes.
Nein, mein Problem bei der Sache ist, dass ein Primärschlüssel
zwingend einzigartig ist und das ist schlichtweg unmöglich bei
MD5 da MD5 aus beliebiglangen Bitfolgen einen 32 Byte Hash
erzeugt.
Dass ein Hash nicht umkehrbar versteht sich von selbst, danke.
patrick
PS: Ja, mir ist klar, dass die Chance gering ist.
PPS: Ich war echt zu lange nicht mehr hier, an mich erinnert
sich wohl wirklich nur noch der Herr Huebenthal ;)
Re: Pruefen ob User schon vorhanden
am 26.03.2005 15:26:48 von Patrick Diddens
"Abitos Schrelb" schrieb:
> Hash Kolissionen sind in der sicher kein Problem. Da ja beim erstellen
> des Benutzers abgefragt wird ob ein solcher Hashwert schon existiert.
> (Stand weiter unten in dem Text den du nicht ganz gelesen hast.)
Ich habe da das gelesen:
"Hash Kolissionen sind in der sicher kein Problem. Da ja beim erstellen
des Benutzers abgefragt wird ob ein solcher Hashwert schon existiert."
Tut mir leid, da fehlt mindestens ein Wort, der erste Satz ist nur zu
interpretieren, nicht zu lesen.
Aber gut, mir ist es egal wie andere ihre CPUs foltern.
In diesem Sinne frohe Ostern.
patrick
Re: Pruefen ob User schon vorhanden
am 26.03.2005 17:39:46 von Niels Braczek
Patrick Diddens schrieb:
> "Niels Braczek" schrieb:
>>Patrick Diddens schrieb:
>>>"Abitos Schrelb" schrieb:
>>>>
>>>>Da ich nach einem md5 (xy) einen klar definierten Wert
>>>>habe.
>>>
>>>Den kannst du prinzipiell nicht haben weil n Bytefolgen den gleichen
>>>MD5-Hash haben. Ich sehe den Punkt einfach nicht und stimme da mit
>>>Johannes Vogel überein.
>>
>>Doch, der Hashwert ist eindeutig bestimmt und somit klar
>>definiert. Was du meinst ist, dass er nicht eineindeutig (also umkehrbar)
>>ist. Das ist aber etwas ganz anderes.
>
> Nein, mein Problem bei der Sache ist, dass ein Primärschlüssel
> zwingend einzigartig ist und das ist schlichtweg unmöglich bei
> MD5 da MD5 aus beliebiglangen Bitfolgen einen 32 Byte Hash
> erzeugt.
Das ist eine Frage der Eineindeutigkeit, die bei MD5 natürlich nicht
gegeben ist. Dennoch ist der Hashwert eindeutig bestimmt.
> Dass ein Hash nicht umkehrbar versteht sich von selbst, danke.
Das ändert aber nichts an der Tatsache, dass er eindeutig bestimmt ist.
Derselbe Input liefert denselben Output => eindeutig bestimmt (Funktion
im mathematischen Sinne).
> PS: Ja, mir ist klar, dass die Chance gering ist.
Darum ging's mir nicht.
> PPS: Ich war echt zu lange nicht mehr hier, an mich erinnert
> sich wohl wirklich nur noch der Herr Huebenthal ;)
Dann willkommen zurück ;-)
MfG
Niels
Re: Pruefen ob User schon vorhanden
am 30.03.2005 11:57:05 von Stefan Kuhn
Am Fri, 25 Mar 2005 11:17:35 +0100 schrieb Abitos Schrelb:
> Haben wir da nicht noch etwas vergessen? Vieleicht eine Überprüfung der
> empfangenen Daten? Wir wollen doch nicht, dass jemand unser Script kapert.
Wenn man schon dabei ist, sollte man auch auf Schreib- und Lautähnlichkeit
prüfen, um Schreibfehler auszuschliessen.
so anmerkend
Stefan