einzigartigen string erzeugen
schildi
- php
0 Vinzenz Mai0 schildi
0 Andi0 schildi
0 Maxx
hallo,
ich möchte ids erzeugen welche aus einem string eine EINZIGARTIGE id erzeugen. es muss exakt diesselbe id erzeugt werden, wenn der gleiche string verwendet wird.
ich habe da an md5 oder crc gedacht.
bekomme ich zb. über:
$id = sprintf("%u\n", crc32($string));
eine einzigartige id? oder könnte diesselbe id rauskommen, wenn der string ein anderer wär?`
wäre
$id = md5($string)
eindeutig?
hoffe jemand weiss da besser bescheid als ich.
danke im voraus.
Hallo schildi
ich möchte ids erzeugen welche aus einem string eine EINZIGARTIGE id erzeugen. es muss exakt diesselbe id erzeugt werden, wenn der gleiche string verwendet wird.
Weder md5() noch crc32() erzeugen einen _eindeutigen_ Wert. Dafür sind beide Verfahren auch nicht gedacht.
Wie Du den von mir verlinkten Handbuchseiten entnehmen kannst, liefert crc32() eine 32-Bit-Prüfsumme. Wenn für alle verschiedenen Strings diese Prüfsumme unterschiedlich wäre, könntest Du jeden Text mit 32 Bit darstellen. Analoges gilt für md5(), außer dass der erzeugte Wert eine 32-stellige Hexadezimalzahl ist.
Freundliche Grüße
Vinzenz
Strings diese Prüfsumme unterschiedlich wäre, könntest Du jeden Text mit 32 Bit darstellen.
Da hast du allerdings verdammt recht. lol :).
das heisst eigentlich, das sowas praktisch unmöglich ist - ausser ich würde immer überprüfen ob die kombination string <-> id schonmal vorgekommen ist..
Hi,
schau mal hier:
Gruß
Andi
das hilft mir leider nicht weiter - da ich die id ja aus einem string generieren muss..
Hallo schildi,
ich möchte ids erzeugen welche aus einem string eine EINZIGARTIGE id erzeugen. es muss exakt diesselbe id erzeugt werden, wenn der gleiche string verwendet wird.
da der MD5-Hash eine 128 Bit Zahl ist, die Menge der Strings aber praktisch unbegrenzt ist, _muss_ es unterschiedliche Strings geben die zum gleichen MD5-Hash führen. Dieses Problem lässt sich aber nicht lösen, wenn 'unendlich' viele Strings auf einen begrenzten Hash abgebildet werden sollen.
Grüße
Jochen