2016-05-03 14 views
1

Ich habe PostgreSQL für die letzten paar Wochen verwendet und ich habe es geliebt!Automatisches Passwort Hashing in PostgreSQL

Ich benutze crypt() und gen_salt(), um das Passwort-Hashes zu erzeugen, indem sie sie an den Einsatz Abfrage wie so hinzufügen:

crypt(:password, gen_salt('bf', 8)) 

Ebenso für die select verwende ich so etwas wie:

crypt(:password, u.password) 

Ich möchte meinen SQL-Code vereinfachen, indem ich den Hash für die Kennwortspalte der Tabelle anstelle von SQL-Abfragen oder zusätzlichen Funktionen automatisiere.

Um klarer zu sein, wenn ich eine Zeile in die Tabelle einfügen, möchte ich Hash/Compare sofort konvertieren.

Gibt es einen Weg? Und wenn ja, wäre das weise?

+0

So haben Sie eine Tabelle, und speichern Sie ein Passwort-Hash in ihm, aber Ihre Frage ist sehr "kryptisch" haha. Ernsthaft, was meinst du mit automatisieren (automatisieren)? Welche S QL-Abfragen oder zusätzliche Funktionen? Was willst du erreichen? –

+0

Ja, tut mir leid, du könntest recht haben. Also ... Ich habe eine Frage, die gut funktioniert. Aber ich möchte die Krypta (: password, gen_salt ('bf', 8)) aus der Abfrage entfernen und sie irgendwie in der Spalte der Tabelle selbst implementieren, so dass jedes Mal, wenn ein Wert hinzugefügt wird, dieser sofort gehasht und/oder verglichen wird zum Hash. –

Antwort

1

Ich werde nicht zu dem "wäre das weise sein?" Teil der Frage (nicht, weil ich denke, dass es unklug ist, sondern weil ich nicht genug über Ihre Bedürfnisse weiß).

Wenn Sie einen Spaltenwert während eines INSERT oder UPDATE automatisch zu berechnen, müssen Sie einen Trigger (siehe CREATE TRIGGER).

Wenn Sie automatisch einen Spaltenwert während eines SELECT berechnen wollen, müssen Sie eine Ansicht (siehe CREATE VIEW).

es gibt andere Wege zu erreichen, was Sie fragen, aber Triggern und Ansichten sind wahrscheinlich die einfachste Mechanismen.

+0

Danke für die Tipps Mann, ich werde es morgen überprüfen und sich an Sie wenden! –