Существует ли класс алгоритмов хеширования, теоретический или практический, такой, чтобы алгоритм в классе можно было считать «рефлексивным» согласно определению, данному ниже:
- hash1 = algo1 ("текст ввода 1")
- hash1 = algo1 («входной текст 1» + hash1)
Оператор + может быть конкатенацией или любой другой указанной операцией для объединения вывода (hash1) обратно во вход («input text 1»), так что алгоритм (algo1) даст точно такой же результат. т.е. столкновение на входе и на входе + выходе. Оператор + должен объединять все оба входа, и алгоритм не может отбрасывать часть ввода.
Алгоритм должен давать высокую энтропию на выходе. Может быть, но не обязательно, криптографически трудно преобразовать выход обратно в один или оба возможных входа.
Я не математик, но хороший ответ может включать доказательство того, почему такой класс алгоритмов не может существовать. Однако это не абстрактный вопрос. Я искренне заинтересован в использовании такого алгоритма в моей системе, если таковой существует.
Это дубликат вопроса, который был впервые опубликован по адресу /programming/4823680/reflexive-hash