Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
Ein Hash ist keine Verschlüsselung, also kann mans auch nicht "entschlüsseln".
Beispiel:
Dein Text ist "12456789", der Hash ist ein ganz einfacher Algorithmus, der einfach nur die Zahlen zusammenzählt. Dann wär das Ergebnis: 42.
Das Ergebnis kann aber auch durch ganz andere Eingabewerte zu Stande kommen.
Zudem "salzt" ein halbwegs brauchbarer Algorithmus die Eingabewerte auch noch mindestens, wenn wir mal bei den ganz einfachen Sachen bleiben.
Kurzfassung: Es gibt mehrere mögliche Lösungen zu dem Problem, das heißt es ist möglich einen Satz von Daten zu berechnen die die ursprünglichen Daten enthalten. Collision Problem. Aber eben nicht eindeutig zu bestimmen was jetzt aus diesem Satz die ursprünglichen Daten sind.
Es sei denn natürlich es gibt bekannte Neben- oder Randbedingungen.
kann zwar 753692ec36adb4c794c973945eb2a99c1649703ea6f76bf259abb4fb838e013e entschlüsseln, aber 419b421123f8d803a489276bbd23e118692839a854f75dd7c2e16123632b0d14 nicht.
Entschlüsseln kann man bei einem Hashwert gar nichts, weil es keine Verschlüsselung ist. Man kann zu dem Hashwert Eingabewerte finden, die nach Anwendung der Hashfunktion den gegebenen Hashwert ergeben.
Ich verstehe den abwertenden Kommentar nicht ... Ich hatte nur nach einer Implementierung eines Verschlüsselungsverfahrens gesucht ... Keiner zwingt dich, hier zu antworten, btw. Aber, falls doch, so wäre es wünschenswert, wenn deine Antworten richtig wären.
Vergiss mal dein zurückübersetzen. Es kann nur eine (oder mehrere) mögliche Eingabe(n) gefunden werden, die zu einem Hash führen. Ob das letztlich auch der korrekte Eingangswert war, wirst du nie erfahren.
@rg88 hat das schon schön verglichen mit der Quersumme als Hashfunktion. Bei einem Hash-Wert von "1" weißt du auch nicht, ob der korrekte Eingangswert "1", "10", "100", "1000" oder "10000" war. Alle Werte führen zum selben Hashwert "1".
CyborgBeta schrieb:
Um sich davor zu schützen, salzt man also eine Datenbank. Was ist, wenn der Salt bekannt ist? Lässt sich die Eingabe dann zurückübersetzen?
Nein, und trotz Wissen um das Salz kannst du nicht einfach den Eingabewert ermitteln. Mittels Salz umgehst du nur das Problem von zu kurzen Eingabewerten, die vorberechnet werden können und mittels Rainbow Table ermittelbar sein können.
CyborgBeta schrieb:
Was ist, wenn ein Teil der Eingabe bekannt ist? Lässt sich dann der andere Teil zurückübersetzen?
Eine Hashfunktion ist eine surjektive Funktion, damit ist es absolut unmöglich, einen Hash eindeutig rückzuübersetzen. Warum das so ist, verdeutlicht die Grafik im Wikipediaartikel (https://de.m.wikipedia.org/wiki/Surjektive_Funktion).
Nein, um zu verhindern dass bekannte Eingabefolgen zu bekannten hashes führen und um sicherzustellen dass zwei Leute mit der gleichen Eingabefolge zwei unterschiedliche hashes haben.
Eine Hashfunktion ist eine surjektive Funktion, damit ist es absolut unmöglich, einen Hash eindeutig rückzuübersetzen. Warum das so ist, verdeutlicht die Grafik im Wikipediaartikel (https://de.m.wikipedia.org/wiki/Surjektive_Funktion).