sha1 und base64_encode Frage

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • sha1 und base64_encode Frage

    Hallo,

    ich habe ein riesiges Problem. Ich soll einen String verschlüsseln. Dafür soll als erstes der string mit sha1 bearbeitet werden und dann mit base64_encode.

    Der String besteht aus einer Zahl z.B 45 und einem Wort in <>

    Also: 45<einwort>

    Ich habe das nun einfach so gemacht:

    $str = '45<einwort>';
    base64_encode(sha1($str));

    Ich habe bereits ein Ergebnis, nur bekomme ich dieses einfach nicht rekonstruiert. Kann es an den <> liegen? Muss ich da irgendetwas beachten, müssen die umgewandelt werden? Kann es mit dem Zeichensatz vom HTML zusammenliegen? Ich verstehe es einfach nicht.

    Hat jemand einen Tip?

    Gruss,

    Luka

  • #2
    SHA1 ist keine Verschlüsselung sondern eine Prüfsummenberechnung. Folglich ist dein gantes unternehmen bereits zum Scheitern verurteilt.
    [FONT="Helvetica"]twitter.com/unset[/FONT]

    Shitstorm Podcast – Wöchentliches Auskotzen

    Kommentar


    • #3
      Hallo,

      das ist aber die Vorgabe. sha erstellt ja den Hashwert und das dann mit base64_encode.

      Kommentar


      • #4
        Dann hast du eine Blödsinnige Vorgabe. Was du mit SHA1 hashst kannst du nicht wieder zurückrechnen!
        [FONT="Helvetica"]twitter.com/unset[/FONT]

        Shitstorm Podcast – Wöchentliches Auskotzen

        Kommentar


        • #5
          Das ist nicht meine Entscheidung, ich soll es nur so umsetzen können. Aber wie gesagt komme ich nicht auf den Wert. Kann es an den <> liegen? Muss man die irgendwie escapen?

          Kommentar


          • #6
            Was heißt du kommst nicht auf den Wert? Wie sieht dein Code genau aus? Was kommt raus? Was willst du, dass rauskommt?
            [FONT="Helvetica"]twitter.com/unset[/FONT]

            Shitstorm Podcast – Wöchentliches Auskotzen

            Kommentar


            • #7
              Mein Code sieht so aus wie im ersten Post:

              PHP-Code:
              $str '45<einwort>';
              base64_encode(sha1($str)); 
              Das geforderte Ergenis war etwas mit IFFUQoE.... ich glaube es sind 28 Zeichen.

              Kommentar


              • #8
                Ja, und WAS willst du erreichen. Junge, lass dir doch nicht alles aus der Nase ziehen!
                [FONT="Helvetica"]twitter.com/unset[/FONT]

                Shitstorm Podcast – Wöchentliches Auskotzen

                Kommentar


                • #9
                  Habe ich doch geschrieben:

                  Ich möchte das wenn ich echo base64_encode(sha1($str)); schreibe das Ergebnis IFFUQoE... rauskommt. Mehr nicht. Nur bekomme ich etwas anderes angezeigt und verstehe halt nicht was falsch läuft.

                  Kommentar


                  • #10
                    Wie ich schon sagte: Das geht nicht. Du kannst höchstens das was du willst durch base64_decode jagen. Aber wenn das dann ein SHA1-Hash ist, ist dort auch Endstation. Hier wird dir also niemand sagen können, was durch diese beiden Funktionen gejagt wurde, dass das dabei rauskommt. Und das habe ich im übrigen auch schon geschrieben!
                    Zuletzt geändert von unset; 16.04.2008, 21:46.
                    [FONT="Helvetica"]twitter.com/unset[/FONT]

                    Shitstorm Podcast – Wöchentliches Auskotzen

                    Kommentar


                    • #11
                      Frag doch deinen Lehrer, wenn du Probleme mit deinen Hausaufgaben hast

                      Kommentar


                      • #12
                        Ich glaube wir reden aneinander vorbei. Ich habe einen Beispielstring mit einem Beispielergebnis. Nun versuche ich das halt nachzubauen, da ich dann doch das gleiche Ergebnis haben müsste, wenn ich es richtig gemacht habe.

                        Sprich Beispielstring soll

                        1. SHA1 Hash vom Beispielstring
                        2. Value dann base64 encoden

                        Das Ergebnis lasse ich mir nun ausgeben und hatte gehofft das es dem Beispielergebnis der Aufgabe gleicht, jedoch sieht das Ergbnis anders aus.

                        Der string sieht ungefähr so aus 24<einwort> mit den <>, die gehören dazu. Nun ist halt die Frage ob

                        $str = "24<einwort>";
                        $value = sha($str)

                        base64_encode($value );

                        Das zu erreichende Ergebnis ist bekannt, also könnte ich prüfen ob es richtig ist. Momentan ist es aber nicht richtig und ich bin am überlegen, ob es an den <> liegen könnte und man diese vielleicht vorher umwandeln müsste. Mir fällt sonst halt nichts ein. Hat jemand nicht eine Idee??

                        Kommentar


                        • #13
                          Naja. Also mit den Spitzklammern will man meist drauf hinweisen, dass hier nur ein Platzhalter steht. Die Spitzklammern selber gehören meist nicht dazu. Hast du das einfach mal ausprobiert?
                          [FONT="Helvetica"]twitter.com/unset[/FONT]

                          Shitstorm Podcast – Wöchentliches Auskotzen

                          Kommentar


                          • #14
                            Ja, bereits probiert, aber es klappt nicht. Es gibt auch eine Testsoftware die dann auch genau das geforderte Ergebnis ausgibt. Also wenn ich die <> eingebe passt das Ergebnis.

                            Das Programm ist aber eine exe Datei, kann also nicht sehen, was da genau gemacht wird...

                            Kommentar

                            Lädt...
                            X