sql >> Database >  >> RDS >> PostgreSQL

Wat is de aanbevolen manier om gebruikerswachtwoorden in een database te coderen?

Gebruik geen SHA1 of SHA256 , zoals de meeste andere mensen suggereren. Gebruik absoluut geen MD5 .

SHA1/256 en MD5 zijn beide ontworpen om checksums van bestanden en strings (en andere datatypes, indien nodig) te creëren. Daarom zijn ze ontworpen om zo snel mogelijk te zijn, zodat de controlesom snel kan worden gegenereerd.

Deze hoge snelheid maakt het veel gemakkelijker om wachtwoorden bruteforceren, aangezien een goed geschreven programma gemakkelijk duizenden hashes per seconde kan genereren.

Gebruik in plaats daarvan een langzaam algoritme dat speciaal is ontworpen voor wachtwoorden. Ze zijn ontworpen om iets langer te duren om te genereren, met als voordeel dat bruteforce-aanvallen veel moeilijker worden. Hierdoor zijn de wachtwoorden veel veiliger.

U zult geen significante prestatienadelen ervaren als u alleen individuele wachtwoorden één voor één wilt versleutelen, wat de normale implementatie is van het opslaan en controleren van wachtwoorden. Het is alleen in bulk waar het echte verschil zit.

Ik hou persoonlijk van bcrypt. Er zou een Perl-versie van beschikbaar moeten zijn, aangezien een snelle Google-zoekopdracht verschillende mogelijke overeenkomsten opleverde.



  1. In JavaFX hoe combobox met gegevens in tabelweergave toe te voegen

  2. Kan UPDATE met OUTPUT-component niet gebruiken wanneer een trigger op de tafel staat

  3. Wat is het verschil tussen ANSI- en niet-ANSI-joins en welke raden jullie aan?

  4. SQL 2008:stopwoorden uitschakelen voor zoekopdrachten op volledige tekst