Является ли платформа хеш-функции (например, SHA) независимой?
Мне нужно сравнить хешированные данные с разных платформ. Используемая хеш-функция - SHA3 Кеккака.
Я начал с предположения, что значения, генерируемые хешем, не зависят от платформы; но затем эти два онлайн-инструмента доказали мне обратное:
Вот соответствующий вывод, когда я хэшировал слово data (sha3 256bit):
- 8f54f1c2d0eb5771cd5bf67a6689fcd6eed9444d91a39e5ef32a9b4ae5ca14ff
- efda893aa850b0c0e61f33325615b9d93bcf6b42d60d8f5d37ebc720fd4e3daf
Мои знания по этому вопросу весьма ограничены, но я всегда считал само собой разумеющимся, что хеш-функции не зависели от платформы (поэтому мы используем контрольную сумму MD5, верно?).
Любой свет на эту тему будет высоко оценен.
Лучший.
2 ответа
Да, алгоритм хеширования должен возвращать одно и то же значение везде, кроме проблем с кодированием.
Вы получите тот же хеш, если выберете алгоритм Keccak-256
вместо этого я не уверен, что они используют для SHA3-256
:
SHA-3, в частности (и в отличие от Keccak), указан в FIPS 202 по состоянию на август 2015 года.
Все реализации должны давать одинаковые результаты с одинаковыми входными данными.
Официальные тестовые векторы доступны на странице NIST CAVP Testing: Secure Hashing.