Gibt es eine Klasse von Hash-Algorithmen, ob theoretisch oder praktisch, so dass ein Algorithmus in der Klasse gemäß der unten angegebenen Definition als "reflexiv" betrachtet werden kann:
- hash1 = algo1 ("Eingabetext 1")
- hash1 = algo1 ("Eingabetext 1" + hash1)
Der Operator + kann eine Verkettung oder eine andere angegebene Operation sein, um die Ausgabe (Hash1) wieder in die Eingabe ("Eingabetext 1") zu kombinieren, sodass der Algorithmus (algo1) genau das gleiche Ergebnis liefert. dh Kollision bei Eingabe und Eingabe + Ausgabe. Der Operator + muss die Gesamtheit beider Eingaben kombinieren, und der Algo darf einen Teil der Eingabe nicht verwerfen.
Der Algorithmus muss eine hohe Entropie in der Ausgabe erzeugen. Es kann, muss aber nicht kryptografisch schwierig sein, die Ausgabe auf eine oder beide mögliche Eingaben zurückzusetzen.
Ich bin kein Mathematiker, aber eine gute Antwort könnte einen Beweis dafür enthalten, warum eine solche Klasse von Algorithmen nicht existieren kann. Dies ist jedoch keine abstrakte Frage. Ich bin wirklich daran interessiert, einen solchen Algorithmus in meinem System zu verwenden, falls es einen gibt.
Dies ist ein Duplikat einer Frage, die zuerst unter /programming/4823680/reflexive-hash veröffentlicht wurde