Char oder Varchar
Hi,
ich steh vor einem kleinem Problem: Ich bin dabei eine Benutzerregistrierung einzurichten. Man kann über das Backend einstellen wie lange ein Benutzername sein darf, also z.B. 20 Zeichen. Wenn ich jetzt Char mit einer festen länge nutze und jemand diese 20 Zeichen auf, z.B. 25 erhöht, müsste ich die Char länge auch erhöhen. Der Nachteil ist, dass ich sie dannach nicht mehr auch 20 setzten kann, weil sich ja dann ein Name mit 25 Zeichen darin befindet. Ich könnte das ganze auch mit varchar machen und somit dynamisch bleiben und könnte ihn auch nachträglich runtersetzten. Was ich mich frage, für was ist dann das Länge Attribut bei Varchar, wenn sie doch dynamisch ist? Ich habe hier gelesen, dass statisch durchaus Vorteile hat: CHAR oder VARCHAR? Statisch oder dynamisch? Beitrag PHP Performance Danke schon Mal LG rs-web |
Zitat:
|
Hi,
ok danke. Wenn ich jetzt ein Passwort habe, dass unverschlüsselt maximal 60 Zeichen lang sein darf, wie lang soll dann die varchar spalte werden? LG rs-web |
Zitat:
|
Hi,
das mit dem salted Hash klingt interessant. Ich hatte zwar eig. sha1() geplant. LG rs-web |
Du kannst jeden Hash salzen.
Ein Beispiel für die Umsetzung findest zu hier: http://xhtmlforum.de/48700-nochmal-i...tml#post357502 |
Nur zur Info: Zumindest in älteren Versionen von mysql war das so, dass wenn die Tabelle ein varchar Feld enthält, alle anderen char Felder automatisch zu varchar umgewandelt werden. D.h. um den nutzen von char zu bekommen, musst du dafür sorgen, dass alle Felder char sind.
|
War es nicht generell so, dass wenn du ein char-Feld nutzen willst, alle anderen Felder der Tabelle auch statisch sein mussten? Egal ob varchar, text oder sonst was?
Ich glaube nicht, dass sich daran was geändert hat :) |
Ich wollte es so formulieren, dann ist mir aber kein Feld eingefallen, das nicht statisch sein kann (ausser Text, Blob u.ä.). Aber man kann es sicher auch so sagen.
|
Hi,
danke für eure Antworten. Um noch mal auch das salten zurück zu kommen, hier Gumbos Funktion: PHP-Code:
LG rs-web |
Achja eine Frage hab ich noch:
Wie viel Platz muss ich jetzt für einen sha1 String reservieren. Hab schon gegoogelt, aber nix gefunden... LG rs-web |
Genau, das ist der Sinn dabei. Der Benutzer muss das Salz auch garnicht kennen. Du musst nur im Nachhinein beim Anmelden den Salt wieder vom passwort "trennen" können und an den String hängen. So dass die beiden verschlüsselten Strings übereinstimmen.
Alternativ kannst du, wenn du nicht mit einem wechselnden Salt arbeiten willst, diesen im System hinterlegen und immer die Passwörter reinbringen. Die Funktion muss ihn dann halt kennen, wenn die Nutzereingabe verschlüsselt wird. Stimmen beide Hashes überein, so war das Passwort mit hoher Wahrscheinlichkeit richtig. Edit: Für den sha1() String brauchst du 40 bzw. 20 Zeichen. Manual: sha1() :) |
Alle Zeitangaben in WEZ +2. Es ist jetzt 09:31 Uhr. |
Powered by vBulletin® Version 3.8.11 (Deutsch)
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
© Dirk H. 2003 - 2023