-E-Mail wird in DB gespeichert. Insert-ID wird zurückgeliefert und zusammen mit rand und der E-Mail Adresse ein MD5 hash erzeugt
-Es wird eine E-mail gesendet wo der Link drin ist in dem Format: mail_confirm.php?u=[insert_id]&h=[md5 hash]
ich würds selber schreiben geht doch schnell 10 Minunten dann sollte man es haben
Ich würde es so machen md5(email + id)
Bei mir hab ichs so gemacht das ich einfach nen timestamp nimm und den in der datenbank abspeicher und dann wenn email und timestamp übereinstimmt wird der account oder was auch immer aktiviert
da nen Timestamp relativ schwer genau zu erraten ist [size=85](mehrmals versuchen ist natürlich ne Möglichkeit^^)[/size] und man den sowieso benötigt, da ja die Registration iwann ablaufen sollte, ist das ne Möglichkeit.
ID im Hash ist sowieso schwer zu erraten^^ Würd halt iwelche nicht so öffentlichen Sachen rein packen und fertig. Eventuell noch bis zu 2000x hashen so das auch das nicht einfach jedem bekannt ist [size=85](1000x md5() geht eigl. in null Komma nix)[/size]
Wirst schon nen Weg finden oder nimmst halt etwas fertiges.
Möglich wäre das zwar, jedoch halte ich es für eine simple Bestätigung als überflüssig. Man muss ja nicht gleich mit Kanonen auf Spatzen schießen. Ich verwende seit Jahren einen Hash aus Timestamp, E-Mailadresse, ID und einem möglichst sinnlosen Satz - und das funktioniert toll.
Wäre das hier nicht sowieso irrelevant, es sei denn er würde ein öffentliches CMS bauen, da Besucher weder auf die PHP-Quelltext noch auf die Datenbank Zugriff haben sollten? Und daher weiß ja niemand wie und mit was man verschlüsselt…
Ich verschlüssle meist email, dann zum hash noch timestamp dazu und dann wieder oder so…Sollte für ne Webseite im kleinen bis mittleren Bereich reichen…
Das läuft ja auch auf eine Art gesalzenen Hash hinaus. Ich halte nur das wiederholte Hashen für sinnlos, zumindest wüsste ich nicht das es irgendwas bringt (Quelle?), außer Security through Obscurity, welches man aber vermeiden sollte.
Sicherlich kann man im kleinen Maßstab abwägen, was Sicherheit und Effizienz angeht, aber ich für meinen Teil mache das halt lieber etwas penibler als vielleicht nötig wäre
Naja, ich denke mir halt dass viele sicher nur einmal mit md5() hashen, weil es mitunder das bekannteste zu sein scheint…und wenn man der Masse nicht angehört ist das schonmal gut. Aber es ist sicherlich interessant sich darüber auszutauschen.
ja klar aber das war damal meine erste selbst geschriebene community und dann war des schon recht gut fürn anfang und jetz … mein gott dann sollen sie halt nen fake account aufmachen wenn ichs mitbekomme dann wird er halt gesperrt … außerdem glaub ich auch nicht das jemand versucht den timestamp zu erraten (also damit mein ich diese secunden anzahl seit unix oder so … mir fällt grad nicht der richtige name ein )
und jetz nachzubessern ist mir erlich gesagt fast etwas zu viel arbeit (ja ich weiß ich bin faul) XD
mehrmals nen md5 erstellen, hat ganz einfach den Grund, das es so “Sicher” ist. md5 ist anfällig für Rainbow Attacken size=85[/size] und das ganze mehrfach hashen schützt. Außerdem haben viele Seiten nen einfachen md5 Hash, daher haste einen haste alle^^ [size=85](also kannst dich auf Seiten einloggen etc… in dem Fall ist nicht so relevant, aber wenn man es immer richtig macht, muss man net extra drauf achten)[/size]
Statt rand() würde ich lieber mt_rand() nehmen, weil “besser” und vorallem schneller ist.
Wie sieht’s eigentlich mit Hash-Algorithmen aus, die neuer sind als MD5? Ich benutz für meine Skripte schon länger SHA-1 und für’s nächste Projekt ist SHA-256 vorgesehen. Benutzt ihr alle noch MD5?
ich nutz md5^^ Ganz einfach weils gut für Pwd’s geeignet ist [size=85](im Sinne von oft genutzt und es sieht besser aus )[/size], schnell ist [size=85](ok bei 1000x Aufrufen auch net unbedingt besser als 1-10x SHA-1 xD)[/size] und eben überall dafür ne Implementation vorhanden ist weshalb auch externe Zugriffe gehen etc. [size=85](ok SHA-1 sollte es theoretisch auch so gut wie überall geben… dennoch)[/size]
Aus ähnlichen Gründen nutz ich auch nen simplen crc32 als Checksum bei nicht so wichtigen Sachen da dieser eben simple und schnell ist. Wenns wichtiger ist eben noch nen md5 obendrauf size=85[/size]
Bei dem Ergebnis könnte man drüber streiten, ob’s nicht nur an dem Rechner liegt auf dem das ausgeführt wird, aber viermal schneller, wie in der PHP-Dokumentation beschrieben, sieht anders aus…
Bleibt noch die bessere Verteilung, die bei unserem Problem aber vernachlässigbar ist.
Man könnte die Zeichenkette ja auch noch weiter kürzen in dem man nur jedes zweite Zeichen übernimmt, schwer zu erraten wäre das auch noch alle mal