Esiste una classe di algoritmi hash, sia teorici che pratici, in modo tale che un algoritmo nella classe possa essere considerato "riflessivo" secondo una definizione fornita di seguito:
- hash1 = algo1 ("input text 1")
- hash1 = algo1 ("input text 1" + hash1)
L'operatore + potrebbe essere la concatenazione o qualsiasi altra operazione specificata per combinare l'output (hash1) nell'input ("testo di input 1") in modo che l'algoritmo (algo1) produca esattamente lo stesso risultato. cioè collisione su input e input + output. L'operatore + deve combinare tutti e due gli input e l'algo non può scartare parte dell'input.
L'algoritmo deve produrre un'entropia elevata nell'output. Potrebbe, ma non è necessario, essere crittograficamente difficile invertire l'uscita su uno o entrambi i possibili ingressi.
Non sono un matematico, ma una buona risposta potrebbe includere una prova del perché una tale classe di algoritmi non può esistere. Questa non è una domanda astratta, tuttavia. Sono sinceramente interessato a utilizzare un tale algoritmo nel mio sistema, se ne esiste uno.
Questo è un duplicato di una domanda che è stata pubblicata per la prima volta su /programming/4823680/reflexive-hash