Id generieren

Also ich müsste aus daten wie Vorname,Nachname,Geburtsjahr... eine id generieren möchte aber möglichst nichts kompliziertes verwenden (md5 oder so) . Im Moment addiere ich alle ASCII Werte.

Ist das für so 600 Einträge sicher genug, oder soll ich auf hashes umsteigen ?
 
also addition von ascii werten würde ich als extrem unsicher betrachten. die wahrscheinlichkeit von doppelten summen ist sehr hoch.
steig lieber auf hashes um.
 
du kannst die namen in unicode umwandeln (oder was anderes eindeutiges zwecks umlaute) und dann nachname & vorname (in dieser reihenfolge zwecks sortieren) zusammensetzen. dabei würde ich kleinbuchstaben verwenden
 
Wenn du die ASCII-Codes nur addierst, dann spielt ja die Reihenfolge der Zeichen gar keine Rolle mehr ==> sehr unsicher.

Ich würde dir also dringend zu Hashes raten. Hier gibts einen Pseudocode zu MD5.
http://en.wikipedia.org/wiki/MD5#Pseudocode
MD5 ist aber hinsichtlich Signaturen bereits als geknackt anzusehen. Für Passwörter besteht angeblich keine akute Gefahr. Da MD5 aber außerordentlich schnell ist, dürfte es optimal für deine Zwecke sein.


MfG, BattleMaker
 
wenn Du kein Bock auf HASH hast (warum eigentlich? VB sollte doch sowas gut anbieten) - niemm einen long integer (also eine Zahl 2^31, keine Ahnung wie die in VB bezeichnet werden). Dann muss man sich nur überlegen welche Operation sinnvoll ist:
Nur ASCII addieren: bringt wie erwähnt kaum was, weil Daniel und Lienda die gleichen summen hätten - es würde auch nichts bringen, zu multiplizieren, aber wenn man die Buchstabenstellen mit einbezieht:
1 2 3 4 5 6
D a n i e l
ASCII Wert*1+ASCIIWERT*2+ASCIIWERT*3 (usw), ein Überlauf ist kein Problem ;)
danach noch ein: Ergebnis XOR (summe aller ASCII-Werte, oder Produkt davon oder (imho besser: XOR Gebutsjahr)) machen und es sollte schon was werden.
 
Soweit ich weiß kann XOR doch nur mit Bytes umgehen...
D.h. wenn ich XOR 256 mache kommt eine Fehlermeldung.

Also würde ich es so machen:

Code:
Hash = Ascii-Summe XOR ([WERT] Mod 255)
// Mit [WERT] wird geXORed *g*


MfG, BattleMaker
 
Klar gibts MD5 Rainbow Tables - ab die gehen von kurzen Stings bis 8 oder 10 Zeichen und nur a-z, 0-9 aus.
Mit Vornamen+Nachnamen+Geb+Adresse haste sicher mehr Zeichen und auch Groß- und Kleinschreibung mit drin - also sollte MD5 schon einigermaßen sicher sein. Zudem kannste ja vorher noch n andere Funktion wie z.B. rawurlencode oder so drüber laufen lassen. Das verlängert den String und somit is der Hashwert auch wieder sicherer. :rolleyes:

cu ;)
 
Zurück
Oben