AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

MD5 Länge einfügen als 64 Bit?

Ein Thema von fortuneNext · begonnen am 25. Feb 2009 · letzter Beitrag vom 5. Mär 2009
 
fortuneNext

Registriert seit: 11. Aug 2007
Ort: Neuss
133 Beiträge
 
Delphi 7 Enterprise
 
#20

Re: MD5 Länge einfügen als 64 Bit?

  Alt 3. Mär 2009, 22:35
Hey,
danke vielmals

Zitat:
d := c; // dieze Zeile hattest'e vergessen
Manchmal sind die Fehler erstaunlich einfach

Zitat:
Delphi-Quellcode:
    ///for i := 0 to 15 do
    /// //move(block[i * 32 + 1], w, 32);
    /// move(block[i * (32 div 8) + 1], w[i], (32 div 8)); // du willtest doch wohl alles in
    ///oder gleich // die EINZELNEN w[i] reinkoppieren
    move(block[1], w, 512 div 8); // und die 32 waren wohl noch Bits
Ich kannte move vorher nicht ;-D Und in der Hilfe hab ich mich scheinbar einfach verlesen, ich dachte, es kopiert direkt die Bits

Mit deiner Hilfe kam nun das erste Mal der richtige Hash raus

Einen Ansatz zur Lösung der Berechnung des Hashs am Ende hab ich auch schon.

Delphi-Quellcode:
  for i := 1 to length(DecToBin(h0) + DecToBin(h1) + DecToBin(h2) + DecToBin(h3)) div 8 do
    Result := lowerCase(Result + IntToHex(StrToInt(copy(DecToBin(h0) + DecToBin(h1) + DecToBin(h2) + DecToBin(h3), 8 * (i - 1) + 1, 8)), 2));
Kommt nicht das richtige Ergebnis raus.

So ganz hab ichs auch noch nicht mit diesen Endians (evtl. reicht mein informatisches Wissen einfach dafür noch nicht aus). Soweit ich das verstanden habe, muss ich irgendetwas drehen. Der Endhash wird damit sicherlich nicht gemeint sein, doch auch das Drehen des Binärstrings oder der einzelnen 8-Bit-Blöcke hat nicht zum Erfolg geführt.
Was mir weiterhin aufgefallen ist: Bei meinem Ansatz ist das Endergebniss viel zu lang. Jeder Block hat ohnehin 80 Bit (10 zeichen), das ist ja soweit noch richtig. Aber bei deinem bisherigen Ansatz wird es ja bloß um bis zu 24 gedreht und damit kommen auch nur 32 Bit heraus, wodurch sich dann der korrekte 128-Bit-Hash auch erklärt - bei mir kommen jedoch die vollen 80-Bit-Blöcke heraus. Warum ließt du weniger aus den Blöcken aus - davon steht in Wikipedia doch nichts?
Und eine Frage hätte ich noch zu deinem Code:
Zitat:
h0 shr 0 and $ff
Und zwar speziell auf das "and $ff" bezogen. Meiner Logik nach müsste das doch vollkommen sinnfrei sein, oder nicht?

$ff
11111111
and
10010110
10010110

Das verändert doch nichts an den Bits, egal, welche Zeichen man nimmt?
Beim Weglassen kommt jedoch etwas Anderes heraus.

Vielen Dank dass ihr soviel Geduld mit mir habt Ich denke, ich lerne dabei eine ganze Menge

fortuneNext
Tim
"Hilfe & Support konnte nicht geöffnet werden. Bitte öffnen sie Hilfe & Support, um das Problem zu beheben."
"No Keyboard found. Press F1 to continue."
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:09 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz