Nie używaj SHA1 ani SHA256 , jak sugeruje większość innych osób. Zdecydowanie nie używaj MD5 .
SHA1/256 i MD5 zostały zaprojektowane do tworzenia sum kontrolnych plików i ciągów (i innych typów danych, jeśli to konieczne). Z tego powodu zostały zaprojektowane tak, aby działały tak szybko, jak to możliwe, aby suma kontrolna była szybko generowana.
Ta duża prędkość znacznie ułatwia bruteforce haseł, ponieważ dobrze napisany program może z łatwością generować tysiące skrótów na sekundę.
Zamiast tego użyj powolnego algorytmu zaprojektowanego specjalnie dla haseł. Ich generowanie zajmuje trochę więcej czasu, a zaletą jest to, że ataki bruteforce stają się znacznie trudniejsze. Z tego powodu hasła będą znacznie bezpieczniejsze.
Nie doświadczysz żadnych znaczących spadków wydajności, jeśli patrzysz tylko na szyfrowanie pojedynczych haseł pojedynczo, co jest normalną implementacją przechowywania i sprawdzania haseł. Prawdziwa różnica jest tylko hurtowa.
Osobiście lubię bcrypt. Powinna być dostępna jego wersja w Perlu, ponieważ szybkie wyszukiwanie w Google dało kilka możliwych dopasowań.