Wir verwenden UUIDs für unsere Primärschlüssel in unserem db (generiert von php, gespeichert in mysql). Das Problem ist, dass jemand, der etwas bearbeiten oder sein Profil ansehen möchte, diese riesige, gruselige, hässliche Uuid-Zeichenfolge am Ende der URL hat. (edit? id = .....)Ist es sicher, eine UUID in einen Funktionscode umzuwandeln? (nur die ersten 8 Zeichen verwenden)
Wäre es sicher (lies: immer noch einzigartig) wenn wir nur die ersten 8 Zeichen, alles vor dem ersten Bindestrich, benutzen?
Wenn es nicht sicher ist, gibt es eine Möglichkeit, es in etwas anderes zu übersetzen, das für die Verwendung in der URL verwendet wird, die in das Hex zurückübersetzt werden könnte, um es als Nachschlag zu verwenden? Ich weiß, dass ich Base64 es codieren kann, um es auf 22 Zeichen zu reduzieren, aber gibt es etwas noch kürzeres?
EDIT Ich habe gelesen this question und es sagte, Base64 zu verwenden. wieder, alles kürzer?
Hoffen Sie, dass alle außer den ersten 8 Zeichen der UUID überflüssig sind? Sie sind da, um es einzigartig zu machen. Wie auch immer, wenn es 8 anstatt 22 Zeichen ist, glaubst du wirklich, dass das eine freundlichere Benutzererfahrung macht? Ich würde keine Zeit damit verbringen, mir darüber Gedanken zu machen. Ich habe verrückte URIs in der Adressleiste gesehen und die Usability der Site wird dadurch nicht beeinträchtigt. – webbiedave
Ich dachte etwas Ähnliches wie ein MD5-Hash kann abgekürzt werden (lesen Sie dies irgendwo, aber nicht erinnern, wo), weil die Zeichen eine einheitliche Verteilung für eine bestimmte Teilzeichenfolge haben. – helloandre
Ich verstehe. Von Crypto-Hash-Funktionen wird erwartet, dass sie akzeptable Kollisionshäufigkeiten aufweisen, und das Abschneiden der Ausgangszeichenfolge erhöht lediglich diese Wahrscheinlichkeit. Ihre Situation kann keine "Kollision" zulassen (eine ID weist auf zahlreiche Datensätze hin). – webbiedave