![]() |
Einen String in einen Zahlencode umwandeln
Huhu!
Gibt es eine elegante Funktion um einen String in einen Zahlencode zu verwandeln? Beispiel: "HalloDelphiPraxis" umwandeln in einen 14 Stelligen Zahlenwert und wieder zurück?` Der String kann zwischen 2 und maximal 36 Zeichen bestehen, daraus müsste in jedem Fall aber ein 14 stelliger Zahlencode enstehen. Ich habe schon mit XOR und blowfish Units experimentiert, im groben funktioniert das auch aber die Bedingung nur Zahlen und genau 14 Stellen lies sich nie beeinflussen. Falls ihr da nen heissen Tip habt... würd mich freuen :cyclops: |
Re: Einen String in einen Zahlencode umwandeln
Zitat:
nicht mehr rückgängig gemacht werden kann. |
Re: Einen String in einen Zahlencode umwandeln
Jetzt wo du das erwähnst fällt mri auf, dass ich den Weg zurück garnicht brauche.
Falls 2 x der gleiche String codiert wird, werden auch 2 x die gleichen Schlüssel erzeugt. Somit kann ich auf das code - Duplikat reagieren. |
Re: Einen String in einen Zahlencode umwandeln
Zitat:
|
Re: Einen String in einen Zahlencode umwandeln
Hallo,
was Du suchst, nennt sich Hash. Schau Dich mal nach z. B. MD5 um. Gruß xaromz |
Re: Einen String in einen Zahlencode umwandeln
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:
Wenn deine Prüfsumme 46 Bits hätte, dann würden 14 dezimale Ziffern zur Darstellung ausreichen.
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 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? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:18 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