sql >> Database teknologi >  >> RDS >> PostgreSQL

Hvad er den anbefalede måde at kryptere brugeradgangskoder i en database?

Brug ikke SHA1 eller SHA256 , som de fleste andre mennesker foreslår. Brug bestemt ikke MD5 .

SHA1/256 og MD5 er begge designet til at oprette kontrolsummer af filer og strenge (og andre datatyper, hvis det er nødvendigt). På grund af dette er de designet til at være så hurtige som muligt, så kontrolsummen er hurtig at generere.

Denne hurtige hastighed gør det meget nemmere at bruteforce adgangskoder, da et velskrevet program nemt kan generere tusindvis af hashes hvert sekund.

Brug i stedet en langsom algoritme, der er specielt designet til adgangskoder. De er designet til at tage lidt længere tid at generere, med fordelen ved, at bruteforce-angreb bliver meget sværere. På grund af dette vil adgangskoderne være meget mere sikre.

Du vil ikke opleve nogen væsentlige ydeevneulemper, hvis du kun kigger på kryptering af individuelle adgangskoder én ad gangen, hvilket er den normale implementering af lagring og kontrol af adgangskoder. Det er kun i bulk, hvor den reelle forskel er.

Jeg kan personligt godt lide bcrypt. Der burde være en Perl-version af den tilgængelig, da en hurtig Google-søgning gav flere mulige matches.



  1. Forsøg på at genåbne en allerede lukket objekt sqlitedatabase

  2. Samlet funktion i MySQL - liste (som LISTAGG i Oracle)

  3. Hvordan vælger man kun de ledige værelser på et reservationssystem?

  4. natvagts brugerdefineret kommando tilbagekald