Сортировка исходной строки не требуется, поскольку вы будете хэшировать полезную нагрузку b64, а не саму исходную строку JSON.

ющий вопрос более сложен, чем может показаться на первый взгляд.

Предположим, у меня есть произвольный объект JSON, который может содержать любой объем данных, включая другие вложенные объекты JSON. То, что я хочу, - это криптографический хэш / дайджест данных JSON, без учета самого фактического форматирования JSON (например, игнорирование переносов строк и различий между токенами JSON).

Последняя часть является требованием, поскольку JSON будет генерироваться / считываться различными (де) сериализаторами на нескольких различных платформах. Я знаю по крайней мере одну библиотеку JSON для Java, которая полностью удаляет форматирование при чтении данных во время десериализации. Как таковой он сломает хеш.

Вышеупомянутое предложение произвольных данных также усложняет ситуацию, так как мешает мне взять известные поля в заданном порядке и объединить их перед хэшированием (подумайте примерно, как работает не криптографический метод hashCode () в Java).

Наконец, нежелательно хэширование всей строки JSON в виде фрагмента байтов (до десериализации), поскольку в JSON есть поля, которые следует игнорировать при вычислении хэша.

Я не уверен, что есть хорошее решение этой проблемы, но я приветствую любые подходы или мысли =)

Ответы на вопрос(5)

Ваш ответ на вопрос