pythonサードパーティライブラリシリーズの8--uuidライブラリ

1421 ワード

あなたは私の唯一です!プログラムにもこのような唯一の標識が必要で、UUIDが誕生しました.
一、概説
UUIDは128ビットのグローバル一意識別子であり、通常32バイトの文字列で表される.時間と空間の一意性を保証し、GUIDとも呼ばれ、全称:UUID-Universally Unique IDentifier PythonではUUID GUID-Globally Unique IDentifier C#ではGUIDと呼ばれ、MACアドレス、タイムスタンプ、ネーミングスペース、随機数、擬似乱数によってIDの一意性を保証します.
二、uuidのアルゴリズムUUIDは主に5つのアルゴリズム、すなわち5つの方法で実現される:1、uuid 1()-タイムスタンプに基づいてMACアドレス、現在のタイムスタンプ、乱数から生成される.グローバルな一意性は保証されるが、MACの使用は同時にセキュリティの問題をもたらし、ローカルエリアネットワークではMACの代わりにIPを使用することができる.2、uuid 2()——分布式計算環境DCE(Pythonにはこの関数がない)に基づくアルゴリズムはuuid 1と同様であり、タイムスタンプの上位4位置をPOSIXのUIDに置き換えるのとは異なる.実際にはこの方法はあまり使われていません.3、uuid 3()——名前に基づくMD 5ハッシュ値は、名前とネーミングスペースのMD 5ハッシュ値を計算することによって、同じネーミングスペースにおける異なる名前の一意性と、異なるネーミングスペースの一意性を保証するが、同じネーミングスペースの同じ名前は同じuuidを生成する.4、uuid 4()--乱数に基づいて擬似乱数から得られ、一定の繰返し確率があり、この確率は計算できる.5、uuid 5()——名前に基づくSHA-1ハッシュ値アルゴリズムはuuid 3と同じであり、異なるのはSecure Hash Algorithm 1アルゴリズムを使用することである:まず、PythonにはDCEに基づくものはないので、uuid 2は無視できる.次に、uuid 4は確率的に繰り返され、マッピング性がないため、使わないほうがよい.また、Globalの分散計算環境ではuuid 1を用いることが望ましい.最後に、名前の一意性の要求がある場合は、uuid 3またはuuid 5を使用することが望ましい.
三、コード実践
import uuid

name = "test_name"

print uuid.uuid1()  #        Python Doc
print uuid.uuid3(uuid.NAMESPACE_DNS, name)
print uuid.uuid4()
print uuid.uuid5(uuid.NAMESPACE_DNS, name)

#271195ee-74b1-11e4-88b1-600308a572a2
#7e9fc176-3b19-394a-9530-83391161f8e9
#f38e76ba-4d54-43e9-81b5-6d96be63b878
#ad85ae8c-f638-56e0-b9fc-5d7a58009f62
so easy~