Оба значения являются одним и тем же хешем - одни и те же «двоичные» байты показаны в двух разных кодировках (представлениях), и ни одно из них не является более «оригинальным», чем другое.
(Base64 имеет 6 битов на символ; шестнадцатеричный, то есть base-16 имеет 4 бита на цифру. Три необработанных байта, четыре цифры Base64, шесть шестнадцатеричных цифр могут быть преобразованы напрямую.)
Почти каждый язык программирования будет иметь функции для кодирования / декодирования этих форматов. Например, в инструментах оболочки:
Чтобы декодировать Base64 в необработанные двоичные данные, используйте
base64 -d
илиopenssl base64 -d
.Чтобы закодировать необработанные двоичные данные в шестнадцатеричное, используйте
xxd -p
илиhexdump
.
$ echo 23171f857347970fb56db0c5bb4929f0a4729695 | xxd -r -p | base64 IxcfhXNHlw+1bbDFu0kp8KRylpU= $ echo IxcfhXNHlw+1bbDFu0kp8KRylpU= | base64 -d | hd 00000000 23 17 1f 85 73 47 97 0f b5 6d b0 c5 bb 49 29 f0 |#...sG...m...I).| 00000010 a4 72 96 95 |.r..|