Kann Hash sich selbst abbilden?
Denkt ihr es könnte einen String geben der gehashed sich wieder selbst darstellt?
2 Antworten
So etwas nennt sich "Hashquine" (nach solchen Programmen: https://de.wikipedia.org/wiki/Quine_(Computerprogramm))
Es ist zwar algorithmisch nicht schwer eine Funktion zu basteln, welche sich nie (auch bei wrap-around, etc) selbst ergeben kann (x+1). Jedoch wollen moderne Algorithmen (besonders für sicherheitsrelevante Anwendungen) genau solche Assoziationen vermeiden.
Dieser StackExchange-User hat errechnet, dass die Wahrscheinlichkeit zur Existenz eines solchen Werts bei einer zufälligen Funktion etwa bei 60% liegt: https://crypto.stackexchange.com/a/19508
Das wäre aber sehr sehr schwer, nahezu unmöglich zu finden. Mir sind solche Fälle nicht bekannt.
Hash-Kollisionen sind da das größere Problem und solche gab es aber auch schon in modernen Hashfunktionen: https://security.googleblog.com/2017/02/announcing-first-sha1-collision.html. Dagegen gibt es Lösungen: https://en.wikipedia.org/wiki/Hash_collision#Collision_resolution
Es gibt jedoch Dateien, welche zwar nicht = ihr eigener Hash sind, diesen aber abbilden: https://hackaday.com/2022/09/28/the-1337-png-hashquine/ | https://retr0.id/media/a13f403f-fff5-4f40-b9a2-13cce355f61b/hashquine_by_retr0id.png

Je nach Algorithmus ist das möglich. Bei modernen Verfahren wie SHA256 ist das aber extrem unwahrscheinlich. Voraussetzung ist, dass der String dieselbe Länge wie der Hash hat und nur im Hash verwendete Zeichen (also meist nur Kleinbuchstaben und Zahlen) enthält.
Gar nicht. Man kann nur mit einem Programm alle Möglichkeiten durchprobieren (würde evt. ein paar Jahre dauern).
Und wie kann ma gezielt diese Hash finden?