Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#6

Re: Einen String in einen Zahlencode umwandeln

  Alt 18. Dez 2006, 14:13
Angenommen man würde mit MD4 oder MD 5 eine Prüfsumme/Hashwert erstellen, dann wird 128Bit = 16Byte zu Speicherung benötigt.
14 Dezimalziffern benötigen aber deutlich weniger Bits:
Code:
10^14 = 2^X
wobei X die Anzahl der benötigten Bits ist

14*log(10) = X*log(2)
X = 14 * log(10) / Log(2) = 46.5
Wenn deine Prüfsumme 46 Bits hätte, dann würden 14 dezimale Ziffern zur Darstellung ausreichen.
Also muss man die 128 Bit auf 46 Bit reduzieren.
Im 1. Schritt nimmt man die oberen 64 Bit verXORt sie mit den unteren 64 Bit.
Das Ergebnis hat also nur noch 64 Bit. (Int64)
Dann nimmt man Bit 63 und verXORt mit Bit 0. Dann Bit 63 auf False setzen.
Das Spiel geht weiter mit Bit62 und Bit 1.
Weitermachen bis nur noch 46 relevante Bits übrigbleiben.

Stellt sich am Ende die Frage: Lohnt der ganze Aufwand, oder sollte man besser
die Aufgabenstellung mit den 14 Ziffern in Frage stellen?
Andreas
  Mit Zitat antworten Zitat