PHP - Was ist ein guter Weg, um einen kurzen alphanumerischen String aus einem langen md5-Hash zu erzeugen?

Dies dient dazu, eine schöne kurze URL zu haben, die auf einen MD5-Hash in einer Datenbank verweist. Ich würde gerne so etwas konvertieren:

a7d2cd9e0e09bebb6a520af48205ced1

n etwa so:

hW9lM5f27

Diese beiden enthalten ungefähr die gleiche Menge an Informationen. Die Methode muss nicht direkt und reversibel sein, aber das wäre schön (flexibler). Zumindest möchte ich einen zufällig generierten String mit dem Hex-Hash als Startwert, damit er reproduzierbar ist. Ich bin mir sicher, dass es viele mögliche Antworten gibt. Ich bin gespannt, wie die Leute es auf elegante Weise machen würden.

Oh, dies muss nicht perfekt 1: 1 mit dem ursprünglichen Hash übereinstimmen, aber das wäre ein Bonus (ich denke, das habe ich bereits mit den Umkehrbarkeitskriterien impliziert). Und ich möchte Kollisionen möglichst vermeiden.

BEARBEITE Mir ist aufgefallen, dass meine anfänglichen Berechnungen völlig falsch waren (dank der Leute, die hier geantwortet haben, aber es dauerte eine Weile, bis ich es herausgefunden habe), und Sie können die Länge der Zeichenkette nicht wirklich stark reduzieren, indem Sie alle Klein- und Großbuchstaben in die Mischung einbauen . Also werde ich wahrscheinlich etwas wollen, das nicht direkt von hex zu base 62 konvertiert werden kann.

Antworten auf die Frage(12)

Ihre Antwort auf die Frage