fanelf.de: Code generieren

Beitrag lesen

du möchtest einen einzigartigen wert bekommen, welcher niemals neu vergeben wird.
hierfür gibt es die funktion unique. diese funktion basiert auf der internen immer nur vorwärts laufenden zeit. ebenso wie die zeit nicht stehenbleibt oder gar rückwärts geht, ist dieser wert immer einmalig, genauso wie die zeit.
man könnte sagen, die funktion datetime liefert immer nur einen einmaligen wert. allerdings müßte diese mit der höchsten auflösung gegeben werden, damit nicht innerhalb eines zeitabschnittes der gleiche wert geliefert wird. dies ist aber mit timestamp nie der fall, da timestamp immer die höchste auflösung liefert.
da zwischen deinen aufrufen von unique oder timestamp immer eine zeit verstreicht, also praktisch nie zur selben zeit 2 gleichzeitige aufrufe stattfinden, bekommst du praktisch nie den gleichen wert.
dieser wert ist aber nicht anonym, wie du es gern hättest. daher kann man diesen wert mit einer einwegverschlüsselung unkenntlich machen. z.b. mit md5.
allerdings haben verschlüsselungen immer einen bereich. md5 z.b. 128 bit. daher kann es theoretisch zu kollisionen kommen, was aber praktisch wegen des immer noch riesigen bereiches nicht vorkommt. ein 6-er mit zusatz- und superzahl ist tausendfach wahrscheinlicher.