bkron: binärdaten clientseitig mit sha1 u./o. ripemd160 hashen

Hallo SelfHtmler,

bin froh, dass das Forum wieder online ist. Es hat schon was gefehlt.

Nun zu meiner Frage. Ich habe den Auftrag bekommen binäre daten auf client-seite zu hashen (mit sha1 u. ripemd160).
bin schon soweit das ich den Stream einer Datei aufgenommen (ich weiss... funzt nur unter IE. Das ist auch nur gefordert!) habe. Was mir jetzt noch fehlt ist der richtige Algorithmus. Ich versuche mich darin bereits seit Wochen (bzw. suche schon seit Wochen nach einer Lösung), konnte aber noch nichts derartiges finden. Da mein Wissen (wie ich mittlerweile glaube) bezüglich javascript eingeschränkt ist, weiss ich jetzt nicht mehr weiter. Ich hoffe das hier irgendjemand ist, der eine Lösung meines Problems kennt, bzw. mir einen Ansatz geben kann...

Grüsse vom Düsseldorfer Flughafen

bkron

  1. Sup!

    Bestimmt steht im Sourcecode z.B. von openssl der Algorithmus von SHA1 drin. Den musst Du dann "nur" von C nach JavaScript konvertieren (soooo schwierig sollte das gar nicht sein), und fertig...

    ;-)

    Gruesse,

    Bio

    1. ach... so einfach ist das?? Na dann leg ich mal los....
      LOL

      Gruss
      bkron

      1. Sup!

        Vielleicht solltest Du es auch gleich in VBScript versuchen - vielleicht kann man da eine Win-Funktion nutzen?

        Gruesse,

        Bio

        --
        Und er laechelt, denn er weiss: Das Boese siegt immer!
        1. Hiho,

          VBScript kenne ich bisher nicht. Aber das kann man ja ändern. Werd mal schauen, ob es da bereits Ansätze gibt. Danke für den Hinweis.

          Grüsse

          bkron

      2. Sup!

        Im übrigen wundere ich mich, warum ich zum Suchen nach so einer Funktion 10 Minuten brauche, und Du Wochen.

        http://pajhome.org.uk/crypt/md5/

        Könnte natürlich daran liegen, dass ich so wahnsinnig GUT bin! Yes!

        (ARROGANZ!!!)

        Gruesse,

        Bio

        --
        Wer suchet, der findet!
        1. Joha. Ich hätte vielleicht erwähnen sollen, das ich den link schon kenne. Sorry.
          Der basiert auf Strings. füttere ihn mit Binärdaten und er fängt an zu weinen. Da ich zu meiner Schande gestehen muss, dass ich zu wenig (bis gar keine) Ahnung von Sha1 und RIPEMD160 habe, bin ich leider auch nicht in der Lage den Algorithmus dementsprechend anzupassen.

          Aber schon mal ein dickes Dankeschön für die Suche.

          Gruss vom (dank der Touri-Flieger, immer lauter werdenen) D'dorfer Flughafen

          bkron

          Sup!

          Im übrigen wundere ich mich, warum ich zum Suchen nach so einer Funktion 10 Minuten brauche, und Du Wochen.

          http://pajhome.org.uk/crypt/md5/

          1. Sup!

            Ah... und ein String ist was anderes als eine Folge von binären Zeichen?

            Gruesse,

            Bio

            --
            Und er laechelt, denn er weiss: Das Boese siegt immer!
            1. ok. falsch ausgedrückt. ersetze string durch ascii.
              Ich kann durchaus ein txt-File (ascii) hashen aber ein binäres File geht halt nicht. Vielleicht bin ich auch zu blöd oder stehe seit Wochen neben mir. Alles möglich. Werds mir nochmal anschauen.

              bkron

              1. vielleicht noch einige zusatzinformationen.
                um an den Stream zu gelangen verwende ich ADODB.Stream (mit dieser Methode geht auch das Hashen von ASCII-Dateien nicht). Nur ist das meines Wissens die einzige Möglichkeit um eben die binären Daten clientseitig auszulesen.

                var adoStream = new ActiveXObject("ADODB.Stream");
                adoStream.Mode = 3;
                adoStream.Type = 1;
                adoStream.Open();
                var bla = adoStream.LoadFromFile("c:\test.pdf");
                var o = adoStream.Read;
                // Somit habe ich den Stream in "o".

                Wenn ich den Algorithmus von http://pajhome.org.uk/crypt/md5// verwenden würde, und es keinen Unterschied zu ASCII-Daten geben sollte, so müsste ich jetzt nur noch

                alert(hex_sha1(o));

                aufrufen.
                Und genau das funktioniert leider nicht! :-(

                Gruss

                bkron

                1. Sup!

                  Vielleicht solltest Du mal einen ASCII-Text in der DB speichern und Dir dann als ADO-Dingens wieder zurückgeben lassen und schauen, ob das, was JS bekommt, das ist, was es bekommen sollte.

                  Vielleicht liefert es ja standardmässig Uni-Code oder irgendeinen M$-Hackepeter?

                  Gruesse,

                  Bio