Passwort speichern in mysql
- leopittoni
- Mitglied
- Beiträge: 1162
- Registriert: 26.04.2004 20:17
Passwort speichern in mysql
Hallo
Möchte ein neues mysql-Feld "forum_password" in der phpbb_forums.
Ein Passwort darf nicht zweimal vorkommen. Also theoretisch ein unique, nur kommt dann der Fehler, es hätte mehrere ' ' oder halt mehrere 0.
Wie soll ich das neue Feld einstellen? Was für eine Codierung, etc.
Ausserdem sollte das ganze verschlüsselt gespeichert werden...
Danke! Léo
PS: habe nicht viel Ahnung von mySQL...
Möchte ein neues mysql-Feld "forum_password" in der phpbb_forums.
Ein Passwort darf nicht zweimal vorkommen. Also theoretisch ein unique, nur kommt dann der Fehler, es hätte mehrere ' ' oder halt mehrere 0.
Wie soll ich das neue Feld einstellen? Was für eine Codierung, etc.
Ausserdem sollte das ganze verschlüsselt gespeichert werden...
Danke! Léo
PS: habe nicht viel Ahnung von mySQL...
- S2B
- Ehemaliges Teammitglied
- Beiträge: 3258
- Registriert: 10.08.2004 22:48
- Wohnort: Aachen
- Kontaktdaten:
Das "nur einmal vorkommen" würde ich per PHP überprüfen. Zur Verschlüsselung würde ich - da das beim phpBB2 für die Benutzerpasswörter ebenfalls verwendet wird - MD5 nehmen. Wenn es sicherer sein soll, könntest du auch zu SHA-1 und/oder Passwörter mit einem Salt greifen, wobei das für die Benutzer noch wesentlich wichtiger sein sollte als für simple Foren-Passwörter.
Im Falle von MD5 wäre das dann VARCHAR(32), bei SHA-1 VARCHAR(40).
Im Falle von MD5 wäre das dann VARCHAR(32), bei SHA-1 VARCHAR(40).
Gruß, S2B
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
- leopittoni
- Mitglied
- Beiträge: 1162
- Registriert: 26.04.2004 20:17
- S2B
- Ehemaliges Teammitglied
- Beiträge: 3258
- Registriert: 10.08.2004 22:48
- Wohnort: Aachen
- Kontaktdaten:
Nein, nur wenn du das Passwort per PHP verschlüsselst ([php:md5]) und dann in die Datenbank einfügst.leopittoni hat geschrieben:Wenn das Feld also als VARCHAR(32) ist, speichert es die Eingaben verschlüsselt?
So grob:leopittoni hat geschrieben:Wie kann ich denn per PHP überprüfen (bei der Eingabe), obs den Eintrag schon gibt?
Code: Alles auswählen
$sql = "SELECT forum_id
FROM phpbb_forums
WHERE forum_password = '" . md5($forum_password) . "'
AND forum_id <> $forum_id";
// ...
if ($row['forum_id'])
{
// Passwort wird bereits verwendet
}
Gruß, S2B
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
- leopittoni
- Mitglied
- Beiträge: 1162
- Registriert: 26.04.2004 20:17
- S2B
- Ehemaliges Teammitglied
- Beiträge: 3258
- Registriert: 10.08.2004 22:48
- Wohnort: Aachen
- Kontaktdaten:
Und für was einen Zufallscode? Soll das Passwort zufällig sein?
Links hierzu: [php:mt_rand], [php:uniqid], [php:md5], [php:substr]
Links hierzu: [php:mt_rand], [php:uniqid], [php:md5], [php:substr]
Gruß, S2B
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
- leopittoni
- Mitglied
- Beiträge: 1162
- Registriert: 26.04.2004 20:17
Geht ganz einfach, hab dir da ne Funktion geschrieben:
Das Passwort wird bestehend aus Zahlen sowie Klein- und Großbuchstaben generiert.
passgen(10) = Das Passwort ist 10-stellig
passgen(8) = Das Passwort ist 8-stellig
Code: Alles auswählen
function passgen($length) {
$str = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
$str = str_shuffle($str);
$password = substr($str, 0, $length);
return $password;
}
$passwort = passgen(10);
echo $passwort;
passgen(10) = Das Passwort ist 10-stellig
passgen(8) = Das Passwort ist 8-stellig
MD5 ist ein Hash mit 32 Stellen, stele Ihn dir mal wie eine einfache Quersumme vor:
Quersumme von 45 = 4+5 = 9
Quersumme von 43897412634 = 4+3+8+9+7+4+1+2+6+3+4 = (kann sich ja jeder im Kopf ausrechnen)
Allerdings ist die Stellenanzahl immer gleich 32.
es geht von 0-9a-f pro stelle also 16 Möglichkeiten pro Stelle.
Insgesamt also 16^32 Möglichkeiten.
Man kann nicht auf das Ursprüngliche Passwort zurück rechnen, nehmen wir die 1. Quersumme von oben, 36 hätte genau die selbe Quersumme 81 auch usw.
Da der md5 Algorithmus aber ein bisschen komplizierter ist geht das nicht so leicht.
Für kurze Passwörter gibt es Tabellen wo man einfach hingeschrieben hat
23 = 61adef457241 was auch immer. Kennt man vielleicht aus verschiedenen Mathebüchern Winkel => Sinus)
Also mögöichst lange Passwörter verwenden, denn bei solchen Tabellen fängt man logischerweise bei den kurzenan, und bei den langen gibt es viel mehr Möglichkeiten.
Quersumme von 45 = 4+5 = 9
Quersumme von 43897412634 = 4+3+8+9+7+4+1+2+6+3+4 = (kann sich ja jeder im Kopf ausrechnen)
Allerdings ist die Stellenanzahl immer gleich 32.
es geht von 0-9a-f pro stelle also 16 Möglichkeiten pro Stelle.
Insgesamt also 16^32 Möglichkeiten.
Man kann nicht auf das Ursprüngliche Passwort zurück rechnen, nehmen wir die 1. Quersumme von oben, 36 hätte genau die selbe Quersumme 81 auch usw.
Da der md5 Algorithmus aber ein bisschen komplizierter ist geht das nicht so leicht.
Für kurze Passwörter gibt es Tabellen wo man einfach hingeschrieben hat
23 = 61adef457241 was auch immer. Kennt man vielleicht aus verschiedenen Mathebüchern Winkel => Sinus)
Also mögöichst lange Passwörter verwenden, denn bei solchen Tabellen fängt man logischerweise bei den kurzenan, und bei den langen gibt es viel mehr Möglichkeiten.
Standart: Am besten mit beiden Beinen auf dem Boden
Standardmäßig antworte ich nicht auf PMs
Standardmäßig antworte ich nicht auf PMs