sql >> Databáze >  >> RDS >> PostgreSQL

Jaký je doporučený způsob šifrování uživatelských hesel v databázi?

Nepoužívejte SHA1 nebo SHA256 , jak většina ostatních lidí navrhuje. Rozhodně nepoužívejte MD5 .

SHA1/256 a MD5 jsou navrženy tak, aby vytvářely kontrolní součty souborů a řetězců (a případně dalších datových typů). Z tohoto důvodu jsou navrženy tak, aby byly co nejrychlejší, aby se kontrolní součet vygeneroval rychle.

Díky této vysoké rychlosti je mnohem snazší brutálně vynutit hesla, protože dobře napsaný program může každou sekundu generovat tisíce hashů.

Místo toho použijte pomalý algoritmus, který je speciálně navržen pro hesla. Jsou navrženy tak, aby jejich generování trvalo o něco déle, přičemž výhodou je, že útoky bruteforce jsou mnohem těžší. Díky tomu budou hesla mnohem bezpečnější.

Pokud se díváte na šifrování jednotlivých hesel po jednom, což je normální implementace ukládání a kontroly hesel, nezaznamenáte žádné výrazné nevýhody výkonu. Skutečný rozdíl je pouze ve velkém.

Osobně mám bcrypt rád. Měla by být k dispozici jeho verze v Perlu, protože rychlé vyhledávání Google přineslo několik možných shod.



  1. Zabezpečení serveru MySQL

  2. psql:FATAL:příliš mnoho připojení pro roli

  3. Jsou příkazy CHOP automaticky zakódovány?

  4. Jak zobrazím obrázky z databáze MySQL v posuvníku obrázků JavaScript?