Short UUIDとは?
Short UUID は標準の128ビットUUIDをより短く、URLに適した文字列に圧縮する技術です。通常、以下を含みます:
- 基数変換: UUIDを16進数(base-16)からより高い基数(通常はbase-58またはbase-62)に変換する
- 文字セットの選択: 曖昧さのないURL安全な文字セットを使用する
- ロスレス圧縮: 元のUUIDのすべての情報を保持する
変換例:
- 標準UUID:
f47ac10b-58cc-4372-a567-0e02b2c3d479
- Short UUID(base-58):
2kLrTdCQVWFjc7dYXzzB5A
Short UUIDの仕組み
- 標準UUIDからハイフンを取り除く
- 結果として得られる32文字の16進文字列を10進数に変換する
- 10進数をより高い基数(58、62、64など)に変換する
- 必要に応じて結果をパディングして一貫した長さにする
一般的なエンコーディングアルファベットには以下が含まれます:
- Base-58: 曖昧さのない文字を除いた英数字(0、O、I、lを除く)
- Base-62: すべての英数字(a-z、A-Z、0-9)
- Base-64: 英数字に加え2つの特殊文字(通常は+と/)
利点と考慮事項
Advantages | Considerations |
---|---|
|
|
長さの比較
Format | Length | 文字セット | Example |
---|---|---|---|
標準UUID | 36文字 | 16進数+ハイフン | f47ac10b-58cc-4372-a567-0e02b2c3d479 |
16進数(ハイフンなし) | 32文字 | 0-9、a-f | f47ac10b58cc4372a5670e02b2c3d479 |
Base-58 | 22文字 | 0、O、I、lを含まない | 2kLrTdCQVWFjc7dYXzzB5A |
Base-62 | ~22文字 | Alphanumeric | 3pqLYdcw9TGKxNVgeO0gOd |
Base-64 | ~22文字 | 英数字+記号 | 9HrBC1jMQ3KlZw4CssPUeQ== |
一般的なBase-58アルファベット
Base-58アルファベットは、等幅フォントと比例フォントの両方で表示したときに視覚的に曖昧さがないよう設計されています:
文字セット | Content |
---|---|
Numbers | 1-9(0を除く) |
大文字 | A-Z(I、Oを除く) |
小文字 | a-z(lを除く) |
文字: 123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz
一般的な使用例
- URL短縮: よりコンパクトなURLパラメータ
- 公開用ID: ユーザーまたはコンテンツ識別子
- QRコード最適化: 文字数削減=よりシンプルなコード
- モバイルアプリケーション: データ転送量削減
- API設計: よりクリーンでコンパクトなリソース識別子
- ソーシャルシェアリング: よりユーザーフレンドリーなリンク
よくある質問
Short UUIDは標準UUIDと同じくらいユニークですか?
はい。Short UUIDは同じ128ビット値の異なる表現に過ぎません。変換はロスレスで、標準UUIDのすべてのユニーク性を保持します。
標準UUIDとShort UUIDの間で変換できますか?
はい。変換は双方向で、標準UUIDをShort UUIDにエンコードし、元の標準UUIDに正確にデコードできます。
どの基数エンコーディングが最も推奨されますか?
Base-58は曖昧な文字(0/Oおよびl/I)を避け、URL安全でURLエンコードを必要としないため、よく推奨されます。
Short UUIDはどのくらい短いですか?
標準UUIDは36文字(ハイフン付き)です。Short UUIDは通常、base-58/62/64エンコーディングで22文字で、約40%短縮されます。
Short UUIDをデータベースに保存すべきですか?
一般的には、標準UUID形式をデータベースに保存し、表示やURLでのみShort UUIDに変換することが推奨されます。これにより、データベースのUUID型との互換性が向上します。