![Атака на String.hashCode: прообразы и коллизии - 1 Атака на String.hashCode: прообразы и коллизии - 1](https://www.pvsm.ru/images/2022/08/13/ataka-na-String-hashCode-proobrazy-i-kollizii.png)
Как-то раз мне понадобилось несколько наборов строк с коллизией по хеш-коду. То есть таких, чтобы значение String::hashCode()
совпадало для всех строк в наборе.
Блуждание по интернету не дало результатов, примеров было мало и все они довольно однообразны. Поиск по словарям подарил забавную пару "javascript's".hashCode() == "monocle".hashCode()
, но практической пользы не принёс. Полный перебор не рассматривался в виду скорой тепловой смерти вселенной.
Тот самый случай, когда проще сделать всё самому. Стандартная хеш-функция строки в Java считается криптографически нестойкой, так что знаний из школьного курса математики должно быть достаточно.