[pgsql]Welke crypt() gebruiken, en hoe automatiseren

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Lasse

Lasse

28/02/2008 18:19:00
Quote Anchor link
Hallo,
Ik wil mijn wachtwoorden natuurlijk geëncrypt in de database stoppen, maar nu vraag ik mij af welke versie van crypt() ik het beste kan gebruiken.
Ook zou ik het het liefst zo zien:
INSERT INTO users (name, password) VALUES ('Pietje', 'banaan')
En dat banaan dan automatisch wordt geëncrypt. Maar ik weet niet hoe ik dat zou moeten realiseren...

Alvast bedankt voor de hulp.
 
PHP hulp

PHP hulp

30/09/2022 20:18:00
 
Frank -

Frank -

28/02/2008 18:22:00
Quote Anchor link
Ik gebruik md5 of sha1, maar dan al in PHP. Dan gaan er nooit onversleutelde wachtwoorden over het lijntje naar de database, deze komen ook nooit onversleuteld in een logboek terecht.

Ga dit niet in de database oplossen, maar in PHP. Je kunt wel in de database valideren met een CHECK-constraint of domain, dan weet je wel zeker dat je bv. een md5-hash als wachtwoord hebt opgeslagen. Met een regex is dat eenvoudig op te lossen.
 
Jurgen assaasas

Jurgen assaasas

28/02/2008 18:24:00
Quote Anchor link
pgFrank schreef op 28.02.2008 18:22:
Ik gebruik md5 of sha1, maar dan al in PHP. Dan gaan er nooit onversleutelde wachtwoorden over het lijntje naar de database, deze komen ook nooit onversleuteld in een logboek terecht.

Ga dit niet in de database oplossen, maar in PHP. Je kunt wel in de database valideren met een CHECK-constraint of domain, dan weet je wel zeker dat je bv. een md5-hash als wachtwoord hebt opgeslagen. Met een regex is dat eenvoudig op te lossen.


ow jawel hoor, als je een formuliertje submit, als de database server dezelfde is als de webserver maakt dat ook niet veel uit. die routeert dan gewoon intern en blijft dus in het systeem.
 
Frank -

Frank -

28/02/2008 18:40:00
Quote Anchor link
In het systeem, in de logboeken... Nee, dat wil je niet hebben en het is nergens voor nodig.

Maak een DOMAIN aan, deze eist bv. een md5 hash en klaar ben je.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
CREATE DOMAIN hash
  AS character(32)
   CONSTRAINT hash_check CHECK ((VALUE ~ '^[a-h0-9]{32}$'::text));

Maak vervolgens een tabel aan met een kolom van het type hash (dus je domain) en zet daarin de md5-hash die je met PHP (!) hebt aangemaakt. Ga geen extra risico's lopen wanneer dat nergens voor nodig is.

Komt nog eens bij dat succesvolle sites niet de database op dezelfde server hebben draaien als de webserver. Daar gaat dan ook weer van alles over de lijn!
 
Lasse

Lasse

28/02/2008 19:19:00
Quote Anchor link
Oke, dan doe ik dat.
Maar ik maak eerlijk gezegd graag gebruik van sha1 in plaats van md5, alleen weet ik niet precies welke karakters, en hoeveel karakters daarin voorkomen. Weet je toevallig ook een regexp daarvoor?

En dan nog een vraag over DOMAINS. Wat kun je beter gebruiken? Een domain, of gewoon een CHECK op een normaal type?
 
Frank -

Frank -

28/02/2008 19:27:00
Quote Anchor link
1) maak van de lengte 32 (staat er 2x) eens 40 en klaar ben je.
2) In dit geval gaat het om een datatype, een sha1-hash, dan ligt een domain meer voor de hand. Daarnaast kun je nu eenvoudig op meerdere plaatsen in je systeem dit domain gebruiken, de datadefinitie wordt centraal beheerd. Moet je wijzigingen aanbrengen, dan hoef je dat maar op 1 plek te doen. Met CHECK-constraints zul je alle tabellen afzonderlijk na moeten lopen om de constraints aan te passen.

Combinaties van domains en check-constraints zijn overigens ook mogelijk, een kolom van het type hash kan natuurlijk best een check-constraint bevatten. Al kan ik zo even geen voorbeeld bedenken... Het kan!
 
Lasse

Lasse

28/02/2008 19:28:00
Quote Anchor link
Oke, dus als ik bijvoorbeeld een email-adres wil opslaan, dan gebruik ik daar ook een domain voor?
 
Frank -

Frank -

28/02/2008 19:45:00
Quote Anchor link
Yep, kan heel goed. Gewoon even een goede regex in bovenstaand domain opnemen en klaar ben je.
 
Lasse

Lasse

28/02/2008 20:32:00
Quote Anchor link
Oke, dankjewel voor je hulp!
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.