UUID v5 とは
UUID v5 は名前空間の UUID と名前を連結したものを SHA-1 でハッシュし、先頭 128 ビットをバージョン 5 の UUID 形式に収めます。
同じ入力からは常に同じ UUID が得られるため、v5 は中央のカウンタなしで識別子を導出するもっとも一般的な方法です。v3 との違いはハッシュ関数だけで、新しい設計では MD5 より SHA-1 が選ばれます。
使い方
- 名前空間を選びます。DNS、URL、OID、X.500。
- ハッシュする名前を入力します。例: ドメイン名やリソースのパス。
- 生成を押します。同じ入力からは常に同じ UUID が得られます。
用途
- ドメイン名・ユーザー名・パスから安定した識別子を導出する。
- 複数のサービスで共有できる計算可能なリソース識別子。
- 内容が変わらない限り変わらないキャッシュキー。
UUID v5 の位置づけ
| 選択肢 | 使う場面 |
|---|---|
v5 | SHA-1。決定的で広く受け入れられています |
v3 | 同じ結果を MD5 で得ます。互換性のためだけに使います |
v4 | 乱数。安定性が不要なときに使います |
UUID の各バージョン早見表
| バージョン | 並べ替え可能 | 基になる情報 | 向いている用途 |
|---|---|---|---|
| v1 | 不可 | タイムスタンプ + MAC アドレス | v1 に依存したままの既存システム |
| v3 | 不可 | 名前の MD5 ハッシュ | MD5 を使わざるを得ない場面の決定的な識別子 |
| v4 | 不可 | 122 ビットの乱数 | 一般的な識別子のほとんど |
| v5 | 不可 | 名前の SHA-1 ハッシュ | 同じ名前から常に同じ識別子を得たいとき |
| v6 | 可 | 並べ替えたタイムスタンプ | 乱数性を保ったまま並べ替えたいとき |
| v7 | 可 | ミリ秒精度の Unix 時刻 | データベースの主キーやイベント識別子 |
| v8 | 不可 | 独自のビット配置 | 独自形式や実験的な用途 |
7 つのバージョンはいずれも 128 ビットで、同じ 8-4-4-4-12 の形式で表記します。違うのはビットの意味だけです。
よくある質問
v5 と v3 は何が違いますか?
ハッシュ関数だけが違います。v5 は SHA-1、v3 は MD5 を使います。どちらも決定的で、新しい設計では v5 を選びます。
UUID v5 は秘密情報の保存に使えますか?
使えません。UUID から名前を復元するのは困難ですが、名前が推測しやすいものであれば総当たりが可能です。パスワードやトークンの生成には使わないでください。
同じ名前でも名前空間が違えば UUID は変わりますか?
変わります。名前空間もハッシュに入るため、同じ名前でも DNS と URL の名前空間では別の UUID になります。