Leeloo5E: SHA1 Hash decodieren

Hallo,

die Aufgabe ist ganz simpel: Decodiere einen derart

  
$hash = '{SHA}'.base64_encode(pack( 'H*' , sha1( $password')));  

codierten SHA1 Hash zurück in seine leserliche Ursprungsform.

D.h. es wurde ein Passwort eingegeben, z.B. 'test'. Dieses wurde mit oben aufgeführten Funktionen verschlüsselt und soll nun wieder entschlüsselt werden. Am Ende soll dann wieder 'test' herauskommen.

base64_decode und unpack sind ja als Funktionen in PHP vorhanden, nur wie mache ich die Funktion sha1 rückgängig? Hat da jemand eine Idee oder das vielleicht schon mal gemacht und könnte mir verraten wie!? Meine Google-Recherche erbrachte bisher jedoch keinen nennenswerten Erfolg diesbezüglich.

Gruß,
Leeloo

--
"Als es noch keine Computer gab, war das Programmieren noch relativ einfach." - Edsger W. Dijkstra
  1. D.h. es wurde ein Passwort eingegeben, z.B. 'test'. Dieses wurde mit oben aufgeführten Funktionen verschlüsselt und soll nun wieder entschlüsselt werden. Am Ende soll dann wieder 'test' herauskommen.

    sha1 ist genauso wie md5 keine Verschlüsselung, sondern eine Prüfsumme. Prüfsummen kann man nicht "entprüfsummen". Das ist auch der Grund, warum solche Algorithmen gerne für Passwörter eingesetzt werden: Selbst wenn jemand die Summe in die Finger kriegt, kann er daraus kein Passwort extrahieren.

  2. Hallo

    die Aufgabe ist ganz simpel: Decodiere einen derart

    $hash = '{SHA}'.base64_encode(pack( 'H*' , sha1( $password')));

    
    > codierten SHA1 Hash zurück in seine leserliche Ursprungsform.  
      
    die Antwort ist ganz simpel: Das geht nicht.  
    SHA1 ist \_keine\_ Verschlüsselung, sondern eben ein Hashwert.  
      
    Du kannst den SHA1-Hashwert der gesamten Bibel (Ausgabe beliebig) bestimmen.  
    Nein, aus dem Hashwert kannst Du nicht wieder den Bibeltext ermitteln.  
      
      
    Freundliche Grüße  
      
    Vinzenz
    
  3. Hallo,

    danke für eure Antworten. Eigentlich hab ichs mir ja gedacht. Allerdings bin ich etwas stutzig geworde, wenn ich z.B. sowas sehe: MD5Encryption. Hat jemand eine Erklärung wie das geht? Das will ich doch auch nur, oder etwa nicht?

    Gruß,
    Leeloo

    --
    "Als es noch keine Computer gab, war das Programmieren noch relativ einfach." - Edsger W. Dijkstra
    1. Hallo,

      Allerdings bin ich etwas stutzig geworde, wenn ich z.B. sowas sehe: MD5Encryption. Hat jemand eine Erklärung wie das geht?

      Vermutlich über eine Rainbow Table. Ist auf jeden Fall ziemlich aufwändig und benötigt relativ viel Festplattenspeicher und geht natürlich auch nicht wirklich schnell.

      Jonathan

      --
      Selfcode: ie:( fl:{ br:> va:) ls:& fo:) rl:? ss:} de:> js:| ch:? mo:} zu:)
      1. Hallo Jonathan,

        Vermutlich über eine Rainbow Table.

        das glaube ich nicht. Ich habe Leeloos Postingtext in das Formular kopiert,
        Hashwert berechnen lassen und das "Dekodieren" ...

        Ist auf jeden Fall ziemlich aufwändig und benötigt relativ viel Festplattenspeicher und geht natürlich auch nicht wirklich schnell.

        ... erfolgte sehr schnell.

        Freundliche Grüße

        Vinzenz

        1. Hallo,

          Vermutlich über eine Rainbow Table.

          das glaube ich nicht. Ich habe Leeloos Postingtext in das Formular kopiert,
          Hashwert berechnen lassen und das "Dekodieren" ...

          Stimmt. Habe ich auch im Nachhinein gemerkt.

          Jonathan

    2. Hallo

      danke für eure Antworten. Eigentlich hab ichs mir ja gedacht. Allerdings bin ich etwas stutzig geworde, wenn ich z.B. sowas sehe: MD5Encryption. Hat jemand eine Erklärung wie das geht? Das will ich doch auch nur, oder etwa nicht?

      Es geht ja auch nicht :-) Die Seite ist "Betrug".
      Wenn Du einen Hashwert zu einem Text berechnen läßt, dann wird Text und Hashwert in einer DB (oder etwas vergleichbarem) gespeichert. Gibst Du nun einen Hashwert ein, so wird nachgeschaut, ob dazu auch ein Text vorhanden ist. Falls ja, wird der Text zurückgegeben. Ich habe einfach per MySQL-Anweisung einen Hashwert zu einem beliebigen Text ermittelt, diesen "decodieren" lassen und die Meldung

      "Sorry, we could not find a matching decryption."

      erhalten. Also nochmals: Es geht nicht. Überlege Dir doch selbst, wieviele Informationen Du in diesem Hashwert speichern kannst.

      Freundliche Grüße

      Vinzenz

      1. Hallo,

        erhalten. Also nochmals: Es geht nicht. Überlege Dir doch selbst, wieviele Informationen Du in diesem Hashwert speichern kannst.

        hmpf ... nagut, dann halt nicht. Schade eigentlich. Danke für die Info.

        Gruß,
        Leeloo

        --
        "Als es noch keine Computer gab, war das Programmieren noch relativ einfach." - Edsger W. Dijkstra
        1. Hallo,

          erhalten. Also nochmals: Es geht nicht. Überlege Dir doch selbst, wieviele Informationen Du in diesem Hashwert speichern kannst.

          hmpf ... nagut, dann halt nicht. Schade eigentlich.

          das kann ich nachvollziehen:
          Wozu umfangreiche Datensicherungen, wenn ich alles in einem 160 Bit Hashwert unterbringen kann. Wozu Filme auf DVD, wenn 160 Bit reichen.
          Zukunftssichere Backups auf Lochkarten (natürlich nicht aus Pappe) ...

          Freundliche Grüße

          Vinzenz

          1. Wozu umfangreiche Datensicherungen, wenn ich alles in einem 160 Bit Hashwert unterbringen kann. Wozu Filme auf DVD, wenn 160 Bit reichen.

            Chip brachte mal in seiner April-Ausgabe zu Zeiten als der papierne Medienkonsum halbwegs cool war einen Bericht, in dem nach und nach von Erfahrungen mit der Komprimierung von MS Word berichtet wurde. Am Schluss hatte man das Ding auf 13 Byte komprimiert.

  4. Hi!

    nur wie mache ich die Funktion sha1 rückgängig?

    Gar nicht.
    Es handelt sich ein einen Einweg-Hasher.

    Die gleiche Frage hatten wir gerade schon hier bezüglich md5.

    http://www.md5encryption.com/

    Wie das funktioniert, steht doch auf der Site:

    Or enter a MD5 hash or SHA1 hash and we will look into our database and try to decrypt MD5 or decrypt SHA1.

    Es gibt dort keinen Trick, um den Hashwert zurückzurechnen.
    Die nutzen dort eine Datenbank.
    Die versuchen nicht, etwas zurückzurechnen.
    Die schauen einer nur in einer Liste, ob sie ein passendes Wort zu dem eigegebenen Hash finden.

    Hier noch zwei Links für dich:
    http://de.wikipedia.org/wiki/Kollisionsfreiheit
    http://de.wikipedia.org/wiki/Kollisionsangriff

    Schöner Gruß,
    rob