Самым надежным алгоритмом криптографического хэширования, который стандартизировал NSA / NIST, является SHA-512.
Обязательно используйте случайную соль для пароля (128-разрядная соль, генерируемая криптографически сильным генератором случайных чиселэто хорошо).Или, что еще лучше, обязательно используйте случайный ключ для каждого пароля (снова сгенерированный криптовалютой) и используйте HMAC-SHA-512.Обязательно используйте несколько итераций - 4096 и 65 536 - хорошие круглые числа (2 ^ 12 и 2 ^ 16).
let h = get_hash_hunction("SHA-512")
let k = get_key_for_user("Justice")
let hmac = get_hmac(h, k)
let test = get_bytes("utf-8", http_request_params["password"])
for(i in 0 .. (2^16 - 1))
let test = run_hmac(hmac, test)
return test == get_hashed_password_for_user("Justice")