SHA-256 и SHA-512 — оба надёжные хеши семейства SHA-2, но с разной длиной вывода. SHA-256 даёт 256 бит (64 символа), а SHA-512 — 512 бит (128 символов). Для обоих до сих пор не известно практичных атак.
Ключевое различие — в единице внутренних операций. SHA-256 работает с 32-битными, а SHA-512 — с 64-битными словами. Поэтому на 64-битных процессорах SHA-512 может оказаться даже быстрее, а в 32-битной среде выгоднее SHA-256.
По запасу безопасности SHA-512 даёт более длинный хеш, но для большинства задач и 256 бит SHA-256 уже вполне достаточно. Чем длиннее хеш, тем выше затраты на хранение и передачу, поэтому без особых требований SHA-256 — практичное значение по умолчанию.
Итого: в общем случае — SHA-256, а если нужна максимальная производительность на 64-битном сервере и большой запас безопасности — SHA-512. SHA-384 — это вариант SHA-512, усечённый для защиты от атаки удлинения сообщения, его тоже стоит рассмотреть, например для сертификатов.