(vermutliche) Anfängerfrage Duplikate

Hallo Helfer,

sorry für den Username aber das ist meine 4. Registrierung und die erste für die ich eine Aktivierungsmail bekam (keine Ahnung obs Probleme mit Yahoo gab). Ich habe eine Frage die mich nun schon seit Stunden verzweifeln lässt. Es klingt einfach scheint es aber doch nicht zu sein, zumindest bin ich mit meinen Kenntnissen überfordert.

Ich habe folgende Datenstruktur:

PasswortA;Benutzer1
PasswortA;Benutzer1
PasswortB;Benutzer1
PasswortA;Benutzer2
PasswortC;Benutzer2
PasswortB;Benutzer3
PasswortB;Benutzer3
PasswortD;Benutzer3
PasswortD;Benutzer3

Ich soll hierzu eine Datenanalyse machen, ursprünglich standen davor noch url und username, daher kommt es dass Benutzer1 PasswortA 2 mal benutzt, vielleicht einmal für Email und einmal für’s Forum.

Ich möchte nun alle Benutzer abfragen, die ein Passwort mehrmals benutzen, idealerweise mit dem Passwort, welches er doppelt benutzt hat.

Herauskommen soll hier also idealerweise:
Benutzer1, PasswortA
Benutzer3, PasswortB
Benutzer3, PasswortD


Ich hoffe mir kann jemand helfen :frowning: . Es kommt öfters vor, dass mehrere Benutzer zufällig das gleiche Passwort benutzen. Dies ist hierfür aber irrelevant.

Vielen Dank und verzweifelte Grüße :angry:

DISTINCT oder GROUP BY sollten dir weiterhelfen.

PostgreSQL: Documentation: Manuals: PostgreSQL 8.1: SELECT



test=*> select * from chakalaka ;
 pw  | name
-----+------
 pwa | b1
 pwa | b1
 pwb | b1
 pwa | b2
 pwc | b2
 pwb | b3
 pwb | b3
 pwd | b3
 pwd | b3
(9 rows)

test=*> select name, pw from chakalaka group by name, pw having count(*) > 1 order by name;
 name | pw
------+-----
 b1   | pwa
 b3   | pwd
 b3   | pwb
(3 rows)

Andreas

Idealerweise sollte das in einer gute Datenbank unmöglich sein! :smiley:

Weil Du was lernen willst:

Weil man in ihr Passwörter WENIGSTENS einfach verschlüsselt - und zwar so, dass auch gleiche Passwörter unterschiedliche Kodierungen ergeben.

Das erzielt man indem im “PW-Feld” z.B. ein MD5-Hash über Username + Password + Salt berechnet und abgelegt wird … das Salt kann irgendein längerer, auch von user zu user verschieden großer - zufällig erzeugter String sein, den du auch mit in der User-Tabelle speicherst (der soll nur die entropie erhöhen, damit noch viel viel unterschiedlichere als unterschiedliche Hashs erzeugt werden).

Um Authentizitaet zu prüfen musst Du dann nur auf die Eingabe des Username + Password warten … und berechnest genau wie oben (mit dem sog. Salt) diesen Hash und vergleichst diesen mit dem in der DB.

Wir wollen Dich hier zu guter Arbeit ermutigen :wink:

In diesem Fall kannst du keine solche Abfrage stellen - aus gutem Grund

Das ist alles ganz einfach und die Frauen stehen drauf


Ganz ehrlich … Klartext-Passwörter in der DB sind Dein Problem …
mehrfach verwendete Passwörter deiner User sind NICHT Dein Problem.

Außerdem wäre es faltal wenn User B erfährt dass es noch einen User X gibt dessen Passwort auch “123456” ist

Arbeite an der richtigen Stelle!