uuid-osspモジュールは複数の標準的なアルゴリズムの1つを使用して汎用一意識別子(UUID)を生成する関数を提供します。 また、特殊なUUID定数を生成する関数も提供します。
This module depends on the OSSP UUID library, which can be found at http://www.ossp.org/pkg/lib/uuid/. --> 本モジュールはhttp://www.ossp.org/pkg/lib/uuid/にあるOSSP UUIDライブラリに依存しています。
関連する標準ITU-T Rec. X.667、ISO/IEC 9834-8:2005、RFC 4122はUUIDの生成に関して、バージョン番号1、3、4、5で識別される4つのアルゴリズムを規定します。 (バージョン2アルゴリズムは存在しません。) これらのアルゴリズムのそれぞれは、異なるアルゴリズム群に適合させることができます。
表 F-35. UUID生成用関数
関数 | 説明 |
---|---|
uuid_generate_v1() | この関数はバージョン1 UUIDを生成します。 これはコンピュータのMACアドレスとタイムスタンプが含まれます。 この種のUUIDは識別子を生成したコンピュータを識別できる情報や生成した時刻をあばくことができますので、ある種のセキュリティに注意すべきアプリケーションでは適しません。 |
uuid_generate_v1mc() | この関数は、コンピュータの実MACアドレスではなくランダムなマルチキャストMACアドレスを使用して、バージョン1 UUIDを作成します。 |
uuid_generate_v3(namespace uuid, name text) | この関数は、入力で指定されたnameを使用して、与えられた名前空間でバージョン3 UUIDを生成します。
名前空間は、以下で示す |
uuid_generate_v4() | この関数はバージョン4 UUIDを生成します。 これは完全にランダムな数から生成されます。 |
uuid_generate_v5(namespace uuid, name text) | <!- This function generates a version 5 UUID, which works like a version 3 UUID except that SHA-1 is used as a hashing method. Version 5 should be preferred over version 3 because SHA-1 is thought to be more secure than MD5. ー> この関数はバージョン5 UUIDを生成します。 バージョン3 UUIDと似ていますが、ハッシュ方式としてSHA-1を使用することが異なります。 SHA-1がMD5より安全であることから、バージョン5はバージョン3に比べて好まれるはずです。 |
以下に例を示します。
SELECT uuid_generate_v3(uuid_ns_url(), 'http://www.postgresql.org');
nameパラメータはMD5でハッシュ化されます。 このため、生成されたUUIDから平文が分かることはありません。 この方法によるUUIDの生成は不規則性はなく、また、環境に依存します。 そのため再度生成される可能性があります。
Peter Eisentraut <peter_e@gmx.net>