Предположим, у меня есть две строки (или массивы байтов) A и B, которые имеют одинаковый хэш (под хешем я имею в виду такие вещи, как MD5 или SHA1). Если я объединю за ней другую строку, будет ли у A + C и B + C один и тот же хеш H '? Что происходит с C + A и C + B?
Я тестировал его с помощью MD5, и во всех моих тестах добавление чего-то в конец приводило к хэш то же самое, но добавление в начале не сделало.
Всегда ли это верно (для всех входов)?
Верно ли это для всех (хорошо известных) хеш-функций? Если нет, существует ли (хорошо известная) хеш-функция, в которой A + C и B + C не будут конфликтовать (а C + A и C + B тоже не будут)?
(кроме MD5(x + reverse(x))
и прочего, я имею в виду)