Hash Code entschlüsseln?

2 Antworten

Ein Hash ist an sich nur eine Abbildung einer großen Datenmenge auf eine kleine Datenmenge. Mit Verschlüsselung hat es an sich wenig zu tun - und man sollte aus einer guten Hash-Funktion auch nicht wieder auf den Original-Inhalt schließen können.

Eine Hash-Funktion ist eher eine ... "Einwegfunktion" f, die optimalerweise für Eingaben x und y mit x != y auch f(x) != f(y) ergibt.

Was oftmals Verwendet wird und was du vermutlich eher meinst: asynchrone Verschlüsselung.

Ein Beispiel wäre z.B. das RSA-Verfahren. Hierbei gibt es zwei Schlüsselpaare:

  • Private Key (d, N) - dieser wird verwendet, um eine erhaltene Nachricht wieder entschlüsseln zu können. d sollte auf jeden Fall privat gehalten werden.
  • Public Key (e, N) - dieser wird verwendet, um Nachrichten so zu verschlüsseln, dass diese nur mit dem passenden d sinnvoll entschlüsselt werden können. Der Public Key ist, wie der Name schon sagt, öffentlich verfügbar - denn jeder soll in der Lage sein, für DICH Nachrichten verschlüsseln zu können, doch nur DU sollst sie lesen können.

Einen Hash kann man nicht "entschlüsseln". Das ist Sinn der Sache. Da gibt es auch keinen "Schlüssel". Es gibt eine Nachricht (ggf. mit einem Salt dazu) und einen Algorithmus, der daraus einen Hashwert produziert. Die andere Richtung ist praktisch unmöglich - nicht zuletzt, weil der Hashwert in der Regel viel kürzer als die Nachricht ist.

Du meinst vielleicht asymmetrische Verschlüsselung, bei der es separate Schlüssel für das Ent- und Verschlüsseln gibt. Den zum Entschlüsseln hält man logischerweise geheim, den zum Verschlüsseln kann man veröffentlichen. Das ist ein wesentlicher Vorteil gegenüber der symmetrischen Verschlüsselung, wo man das von dir beschriebene Problem hat.