AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Einen String in einen Zahlencode umwandeln
Thema durchsuchen
Ansicht
Themen-Optionen

Einen String in einen Zahlencode umwandeln

Ein Thema von Ajin · begonnen am 13. Dez 2006 · letzter Beitrag vom 18. Dez 2006
Antwort Antwort
Ajin

Registriert seit: 23. Feb 2006
Ort: Mons
252 Beiträge
 
Delphi 2010 Professional
 
#1

Einen String in einen Zahlencode umwandeln

  Alt 13. Dez 2006, 16:47
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
  Mit Zitat antworten Zitat
shmia

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

Re: Einen String in einen Zahlencode umwandeln

  Alt 13. Dez 2006, 16:50
Zitat von Ajin:
Gibt es eine elegante Funktion um einen String in einen Zahlencode zu verwandeln?
"HalloDelphiPraxis" umwandeln in einen 14 Stelligen Zahlenwert und wieder zurück?`
Das "und wieder zurück" geht nicht, da ja schon ein Informationsverlust eingetreten ist, der
nicht mehr rückgängig gemacht werden kann.
Andreas
  Mit Zitat antworten Zitat
Ajin

Registriert seit: 23. Feb 2006
Ort: Mons
252 Beiträge
 
Delphi 2010 Professional
 
#3

Re: Einen String in einen Zahlencode umwandeln

  Alt 13. Dez 2006, 17:08
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.
  Mit Zitat antworten Zitat
Flo85

Registriert seit: 25. Apr 2006
23 Beiträge
 
#4

Re: Einen String in einen Zahlencode umwandeln

  Alt 15. Dez 2006, 10:32
Zitat von shmia:
Zitat von Ajin:
Gibt es eine elegante Funktion um einen String in einen Zahlencode zu verwandeln?
"HalloDelphiPraxis" umwandeln in einen 14 Stelligen Zahlenwert und wieder zurück?`
Das "und wieder zurück" geht nicht, da ja schon ein Informationsverlust eingetreten ist, der
nicht mehr rückgängig gemacht werden kann.
wenn schon informationen verloren gegangen sind dan können auch 2 versciedene strings ein und die selbe zahl haben.
  Mit Zitat antworten Zitat
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#5

Re: Einen String in einen Zahlencode umwandeln

  Alt 15. Dez 2006, 10:35
Hallo,

was Du suchst, nennt sich Hash. Schau Dich mal nach z. B. MD5 um.

Gruß
xaromz
I am a leaf on the wind - watch how I soar
  Mit Zitat antworten Zitat
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, 13: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
Antwort Antwort


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 03:36 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz