UUIDを生成するには、uuid-v4、uuid-v5、またはuuid-v7を呼び出します。UUID
v4およびv7では、デフォルトで通常のelisp randomが乱数として使用されますが、生成可能な整数の範囲の上限(排他的)を引数として呼び出し、整数を返すものであれば、別の乱数生成器を渡すことも可能です。
新しいUUIDv4を表すuuid-v4 Lispオブジェクトを返します。rngが指定されている場合は、数値引数を指定して呼び出した際に、0からその数値まで(両端を除く)の乱数を返す関数となります。
uuid-v4と同様ですが、乱数に加えてタイムスタンプを用いて生成されるuuid-v7を返します(乱数はuuid-v4と同様にrngから生成されます)。
これらは乱数を使用しており、暗号学的に安全であるはずです。乱数を参照してください。ただし、一般的にこれらの乱数では、十分にランダムなUUIDを生成するには不十分です。個人利用であればデフォルトの動作で十分ですが、業務利用の場合はrngを使用し、暗号学的に安全な乱数を提供する必要があります。
UUIDv5は、名前空間と名前を指定して生成する必要があります。名前空間はuuid-namespace-alistで定義されており、デフォルトではdns、url、oid、x500となっています。
この関数は、uuid-namespace-alist: dns、url、oid、x500、または追加された任意のシンボルのキーにあるシンボルnamespaceに基づき、新しいuuid-v5
Lispオブジェクトを返します。これはnameと組み合わされて、新しいUUIDv5を構築します。
例は以下の通りです:
(uuid-v5 'dns "www.example.com")
名前空間シンボルとそれに対応するUUIDのリスト。各alistエントリは、シンボルと名前空間を表すUUIDのLispオブジェクトからなるコンスである。これはuuid-v5で使用されており、具体的な使用方法については上記を参照のこと。