Code generieren
Christian Bliß
- programmiertechnik
Hallo,
wie generiere ich am besten einen sichernen und vor allem 100% EINMALIGEN Code? Ich hatte schon an "IP + TIMPSTAMP" gedacht, aber was, wenn zwei Leute in einem Netzwerk (gleiche IP) zu genau der gleichen Sekunde zugreifen? Ja klar, sehr unwahrscheinlich, aber abgesichert muss es trotzdem sein ;)
Und wie kann ich den generierten Code so unkenntlich machen, damit mach nicht mehr erkennt, dass er z.B. aus Timespamp und IP zusammengesetzt ist?
Gruß Christian Bliß
PS: Für Programmiertipps ... ich programmiere mit PERL
Hallo,
wie generiere ich am besten einen sichernen und vor allem 100% EINMALIGEN Code?
Ich würde nach UUID-Implementierungen in Perl recherchieren.
Tim
Hallo,
Ich würde nach UUID-Implementierungen in Perl recherchieren.
Ja, danke - das klingt doch sehr interessant! Früher habe ich mit der UNIQUE_ID von PERL gearbeitet, aber mein Hoster hat diese Funktion gesperrt ...
Kann man eine UUID vorberechnen? Ich würde diese nämlich gerne als Zugangskontrolle für einen abgetrennten Webseitenbereich verwenden und wenn man die UUID irgendwie berechnen kann, bringt das natürlich nichts ... ;)
Gruß Christian Bliß
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.
Hallo
ein 6-er mit zusatz- und superzahl ist tausendfach wahrscheinlicher.
Dann her damit! ;-)
*scnr*
Tschö, Auge
ein 6-er mit zusatz- und superzahl ist tausendfach wahrscheinlicher.
Dann her damit! ;-)
aber leider nur wahrscheinlicher als eine kollision mit md5. sonst könnten wir sofort mit lotto loslegen :-))