Я не эксперт в этом вопросе, но я нашел комментарий к другой ветке, который дал мне понимание происходящего, поэтому я просто опубликую его здесь:
«То, что действительно происходит, это то, что SHA256 возвращает 256-битное хеш-значение. Итак, вы печатаете те байты, как если бы они были символами, и их соответствующие символьные значения - все это бред». То, что онлайн-инструмент возвращает вам, это:представление этого значения в шестнадцатеричном формате. Обратите внимание, что вы получаете (с помощью инструмента) 64 байта IE 64 символа, когда 256-битный равен 32 байта (вы можете подумать, 32 символа). Это потому, что для представления целогобайт в шестнадцатеричном формате требуется 2 символа. 4 старших значащих бита занимают один символ, а другие младшие биты берут другой. "
В принципе, как я понимаю, оба являются правильными, но анализируются по-разному.
Вы можете видеть здесь , что последний, который вы разместили, находится в шестнадцатеричном соde, но это не то, что на самом деле возвращает любой алгоритм хеширования sha256 в коде.
Попробуйте этот инструмент онлайн-конвертации, и вы увидите, что он выдает то же, что и ваш первый (этот методотдает вам).
Наконец, вы должны полагаться на формат, возвращаемый в коде (из вызова функции), поскольку он всегда будет корректным даже при использовании других библиотек с таким же алгоритмом хеширования.
Надеюсь, что этопомогает