UUID の概要
UUID は 128 ビットのグローバルに一意な識別子であり、通常は 32 バイトの文字列で表されます。 GUID とも呼ばれる時間と空間の一意性を保証できます。正式名は、UUID - Universally Unique IDentifier、Python では UUID と呼ばれます。
生成される ID の一意性を保証するために、MAC アドレス、タイムスタンプ、名前空間、乱数、擬似乱数を使用します。
UUID には主に 5 つのアルゴリズム、つまり 5 つの実装方法があります。
uuid1()
– タイムスタンプに基づきます。 MAC アドレス、現在のタイムスタンプ、および乱数から生成されます。グローバルな一意性は保証されますが、MAC を使用すると、ローカル エリア ネットワークで MAC の代わりに IP が使用されるため、セキュリティの問題も発生します。
uuid2()
——分散コンピューティング環境 DCE に基づいています (この関数は Python には存在しません)。アルゴリズムは uuid1 と同じですが、タイムスタンプの最初の 4 桁が POSIX UID に置き換えられる点が異なります。この方法は実際にはほとんど使用されません。
uuid3()
– 名前ベースの MD5 ハッシュ値。これは、名前と名前空間の MD5 ハッシュ値を計算することによって取得され、同じ名前空間内の異なる名前の一意性と、異なる名前空間の一意性が保証されますが、同じ名前空間内の同じ名前は同じ uuid を生成します。
uuid4()
——乱数に基づいています。擬似乱数から得られるものには一定の繰り返し確率があり、この確率は計算できます。
uuid5()
– 名前ベースの SHA-1 ハッシュ値。アルゴリズムは、セキュア ハッシュ アルゴリズム 1 アルゴリズムが使用されることを除いて、uuid3 と同じです。
使用例
#! coding:utf-8 import uuid print u"uuid1 生成基于计算机主机ID和当前时间的UUID" print uuid.uuid1() # UUID('a8098c1a-f86e-11da-bd1a-00112444be1e') print u"\nuuid3 基于命名空间和一个字符的MD5加密的UUID" print uuid.uuid3(uuid.NAMESPACE_DNS, 'python.org') #UUID('6fa459ea-ee8a-3ca4-894e-db77e160355e') print u"\nuuid4 随机生成一个UUID" print uuid.uuid4() #'16fd2706-8baf-433b-82eb-8c7fada847da' print u"\nuuid5 基于命名空间和一个字符的SHA-1加密的UUID" uuid.uuid5(uuid.NAMESPACE_DNS, 'python.org') #UUID('886313e1-3b8a-5372-9b90-0c9aee199e5d') print u"\n根据十六进制字符生成UUID" x = uuid.UUID('{00010203-0405-0607-0809-0a0b0c0d0e0f}') print u"转换成十六进制的UUID表现字符" print str(x) # '00010203-0405-0607-0809-0a0b0c0d0e0f'
結果
uuid1 生成基于计算机主机ID和当前时间的UUID 31a936a1-2339-11e6-8542-9cb70ded607f uuid3 基于命名空间和一个字符的MD5加密的UUID 6fa459ea-ee8a-3ca4-894e-db77e160355e uuid4 随机生成一个UUID 67e6497c-8aec-4413-9955-da86f38ff2d6 uuid5 基于命名空间和一个字符的SHA-1加密的UUID 根据十六进制字符生成UUID 转换成十六进制的UUID表现字符 00010203-0405-0607-0809-0a0b0c0d0e0f
概要
上記は、UUID ライブラリを使用して一意の ID を生成する Python についてのすべてです。この記事の内容が、Python を学習または使用しているすべての人に役立つことを願っています。ご質問がございましたら、メッセージを残してご連絡ください。
以上がPython が UUID ライブラリを使用して一意の ID を生成する方法の詳細な説明。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。