Я заметил, что алгоритм SHA512 дает один и тот же результат независимо от того, ввожу ли я привет сегодня или завтра, или если я использую свой компьютер или компьютер моей сестры.
Ну да, хеш-функции не были бы очень полезны, если бы они время от времени давали разные ответы.
Классическое использование хэш-функции находится в алгоритме подписи; базовый алгоритм обычно обрабатывает только значения ограниченного размера, и мы часто хотим подписывать довольно длинные сообщения. Итак, что мы делаем, так это пропускаем наше длинное сообщение через хеш-функцию (чтобы создать короткое значение, в данном случае длиной 512 бит) и подписываем это короткое значение. Если верификатор вызвал хеш-функцию для того же исходного сообщения и получил другое значение, проверка не сработает.
Учитывая вышеизложенное, означает ли это, что знание приведенного выше хеш-кода априори позволяет мне расшифровать, что соответствующий ввод SHA512 является «привет»?
Ну, что вы можете сделать, так это попробовать выполнить SHA512 на разных входных данных; если один из входных данных просто «привет», то да, вы увидите тот же вывод и сделаете вывод, что (за исключением невероятного совпадения) исходный ввод также был «привет».
Однако это, по сути, лучшее, что вы можете сделать; с хорошей хеш-функцией (а SHA512 — хорошая хэш-функция) практически невозможно восстановить исходную строку (или другую строку, которая хешируется до того же значения), не пытаясь использовать различные догадки.