私たちのdbの主キーにはUUIDを使用します(phpによって生成され、mysqlに格納されます)。問題は、誰かが何かを編集したり自分のプロフィールを見たりしたいときに、URLの最後にこの巨大で恐ろしい、醜いuuid文字列があることです。UUIDをショートコードにすることは安全ですか? (最初の8文字のみを使用します)
最初の8文字だけを使用した場合、最初のハイフンの前にあるすべての文字は安全(読み込み:まだ一意)ですか?
安全でない場合は、URLに使用するために他のものに変換する方法がありますか?これは、参照として使用するためにヘックスに戻すことができますか?私はbase64で22文字にエンコードすることができますが、さらに短くなっていることは知っていますか?
EDIT 私はthis questionを読んでおり、base64を使用しています。もう一度、何か短い?
UUIDの最初の8文字を除くすべてが余計であることを期待していますか?彼らはそれをユニークにするためにそこにいる。いずれにしても、22文字ではなく8文字であれば、それで友好的なユーザーエクスペリエンスが実現すると思いますか?私はそれについて心配する時間を費やすことはありません。私は場所のバーに狂ったURIを見てきましたが、サイトのユーザビリティにはまったく影響しません。 – webbiedave
文字が特定の部分文字列に対して一様な分布を持っているため、md5ハッシュをどのように短縮できるか(どこかを読んでいますが、どこを覚えていないか)に似た考えをしていました。私は見る。 – helloandre
暗号化ハッシュ関数は、許容されるレベルの衝突発生を期待され、出力文字列を切り捨てることは、その可能性を高めるだけである。あなたの状況では、「衝突」(1つのIDが多数のレコードを指している)の可能性はありません。 – webbiedave