UUID Pythonの標準ライブラリ - UUIDモジュール(一意のIDを生成)

Pythonの標準ライブラリ - UUIDモジュール(一意のIDを生成)

UUIDは何ですか。

  UUID:汎用一意識別子(汎用一意識別子)、空間と時間でユニークなUUIDであることを保証することができますすべてが、また、GUID、完全な名前を呼ばれます:

  • UUIDは - 汎用一意識別子PythonはUUIDと呼ばれます
  • GUID - GUIDと呼ばれるグローバル一意識別子のC#

,,一意性を保証するためにMACアドレス、タイムスタンプ、名前空間、乱数、擬似乱数である固定サイズ(128ビット位置)を有し、列は、典型的には、進数で(32バイトのIDによって生成されます)を表します。

        そのユニークな特性との整合性、登録プロセスは、新しいUUIDを生成できるようにする必要がないように、UUIDは、多くの目的のために使用することができ、短時間でオブジェクトをマークするために使用することができると識別ネットワークに信頼性があると永続オブジェクト。

 

UUIDの使用は何ですか?

  多くのシナリオでは、IDが必要ですが、このIDは、単にオブジェクトを識別するために使用される特定の意味を、要求していません。一般的な用途は、データベーステーブルのidフィールドを持っている。彼らは通常、動的に一意のIDを必要とするさまざまなUI要素を作成する必要があるため、別の例としては、様々なUIライブラリの先端である、あなたはUUIDを使用する必要があり、この時間を。例:ファイルは、これらのファイルに名前を付け、ビデオ、写真や他のフォーマットを格納しているWebサイトは、名前の重複を避けるために、ランダムなUUIDの識別子を使用して生成することができます。

 

モジュールが提供するUUID UUIDのクラスや関数

        。)(Pythonの無UUID2:UUIDクラスとUUID1 Pythonの機能は、4、3、UUIDの各バージョンの5が生成されるUUIDを提供するモジュール()、uuid3()、uuid4()、uuid5()である1(なおこの機能)。

最も一般的に使用されるいくつかの機能のためのUUIDモジュールを以下にまとめます。

1. uuid.uuid1([ノード[、clock_seq]]) - タイムスタンプに基づいて

、現在のタイムスタンプは、MACアドレスによって生成された乱数(物理アドレスをホスト)。地球の一意性を保証し、することができます
が、MACを同時に使用するセキュリティ上の問題を紹介し、あなたの代わりにMACのLAN IPを使用することができます。

ノードのパラメータが指定されていない場合、この関数は、2つのパラメータをとり、システムが自動的にパラメータが代わりに指定されていない場合、ランダムに生成されたシーケンス番号clock_seqを使用するホストシステム14のハードウェアアドレスを取得するためにgetNode()関数をコールします。

注意: UUID1は普通の文字列)(返されませんが、その豊かなメンバ関数や変数内のUUIDオブジェクト。

2. uuid.uuid2() - ベースの分散コンピューティング環境DCE(Pythonのない機能)

前者4を除いて同じアルゴリズムとUUID1は、UID POSIXのタイムスタンプの位置に変更されます。
この方法は、実際にはほとんど使用されません。

3. uuid.uuid3(名前空間、名) - 名前ベースのMD5ハッシュ値

価値MD5ハッシュ名と名前空間を算出することにより、同じ名前空間の一意性、別の名前ことを保証するために、
同じ名前空間内で一意と異なる名前空間が、同じ名前で同じUUIDを生成します。

4. uuid.uuid4() - 乱数に基づいて

擬似乱数から得られた、繰り返しのある確率がある、確率を計算することができます。

5. uuid.uuid5() - SHA-1ハッシュ値の名前に基づいて

そのセキュアハッシュアルゴリズム1アルゴリズムを除いて同じアルゴリズムとuuid3、

 

いくつかの方法は、上述した機能を使用します。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
>>> import uuid # 导入UUID模块

>>> # make a UUID based on the host ID and current time
>>> uuid.uuid1()
UUID('a8098c1a-f86e-11da-bd1a-00112444be1e')

>>> # make a UUID using an MD5 hash of a namespace UUID and a name
>>> uuid.uuid3(uuid.NAMESPACE_DNS, 'python.org')
UUID('6fa459ea-ee8a-3ca4-894e-db77e160355e')

>>> # make a random UUID
>>> uuid.uuid4()
UUID('16fd2706-8baf-433b-82eb-8c7fada847da')

>>> # make a UUID using a SHA-1 hash of a namespace UUID and a name
>>> uuid.uuid5(uuid.NAMESPACE_DNS, 'python.org')
UUID('886313e1-3b8a-5372-9b90-0c9aee199e5d')

>>> # make a UUID from a string of hex digits (braces and hyphens ignored)
>>> x = uuid.UUID('{00010203-0405-0607-0809-0a0b0c0d0e0f}')

>>> # convert a UUID to a string of hex digits in standard form
>>> str(x)
'00010203-0405-0607-0809-0a0b0c0d0e0f'

>>> # get the raw 16 bytes of the UUID
>>> x.bytes
'\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f'

>>> # make a UUID from a 16-byte string
>>> uuid.UUID(bytes=x.bytes)
UUID('00010203-0405-0607-0809-0a0b0c0d0e0f')

例:

まず第一に、UUID2を無視できるようにPythonは、DCEベースではなく、
繰り返しの第二に、uuid4存在確率、ではないのマッピングではなく、最善のことで、
再び、グローバルでのコンピューティング環境は、分散場合、好ましくはUUID1と;
そして最後に、名前固有の要件であれば、好ましくはuuid3またはuuid5と。

1
2
3
4
5
6
7
8
import uuid
name = "test_name"
namespace = "test_namespace"

print uuid.uuid1()  # 带参的方法参见Python Doc
print uuid.uuid3(namespace, name)
print uuid.uuid4()
print uuid.uuid5(namespace, name)

 

UUIDモジュールのドキュメントします。https://docs.python.org/2/library/uuid.html

UUIDは何ですか。

  UUID:汎用一意識別子(汎用一意識別子)、空間と時間でユニークなUUIDであることを保証することができますすべてが、また、GUID、完全な名前を呼ばれます:

  • UUIDは - 汎用一意識別子PythonはUUIDと呼ばれます
  • GUID - GUIDと呼ばれるグローバル一意識別子のC#

,,一意性を保証するためにMACアドレス、タイムスタンプ、名前空間、乱数、擬似乱数である固定サイズ(128ビット位置)を有し、列は、典型的には、進数で(32バイトのIDによって生成されます)を表します。

        そのユニークな特性との整合性、登録プロセスは、新しいUUIDを生成できるようにする必要がないように、UUIDは、多くの目的のために使用することができ、短時間でオブジェクトをマークするために使用することができると識別ネットワークに信頼性があると永続オブジェクト。

 

UUIDの使用は何ですか?

  多くのシナリオでは、IDが必要ですが、このIDは、単にオブジェクトを識別するために使用される特定の意味を、要求していません。一般的な用途は、データベーステーブルのidフィールドを持っている。彼らは通常、動的に一意のIDを必要とするさまざまなUI要素を作成する必要があるため、別の例としては、様々なUIライブラリの先端である、あなたはUUIDを使用する必要があり、この時間を。例:ファイルは、これらのファイルに名前を付け、ビデオ、写真や他のフォーマットを格納しているWebサイトは、名前の重複を避けるために、ランダムなUUIDの識別子を使用して生成することができます。

 

モジュールが提供するUUID UUIDのクラスや関数

        。)(Pythonの無UUID2:UUIDクラスとUUID1 Pythonの機能は、4、3、UUIDの各バージョンの5が生成されるUUIDを提供するモジュール()、uuid3()、uuid4()、uuid5()である1(なおこの機能)。

最も一般的に使用されるいくつかの機能のためのUUIDモジュールを以下にまとめます。

1. uuid.uuid1([ノード[、clock_seq]]) - タイムスタンプに基づいて

、現在のタイムスタンプは、MACアドレスによって生成された乱数(物理アドレスをホスト)。地球の一意性を保証し、することができます
が、MACを同時に使用するセキュリティ上の問題を紹介し、あなたの代わりにMACのLAN IPを使用することができます。

ノードのパラメータが指定されていない場合、この関数は、2つのパラメータをとり、システムが自動的にパラメータが代わりに指定されていない場合、ランダムに生成されたシーケンス番号clock_seqを使用するホストシステム14のハードウェアアドレスを取得するためにgetNode()関数をコールします。

注意: UUID1は普通の文字列)(返されませんが、その豊かなメンバ関数や変数内のUUIDオブジェクト。

2. uuid.uuid2() - ベースの分散コンピューティング環境DCE(Pythonのない機能)

前者4を除いて同じアルゴリズムとUUID1は、UID POSIXのタイムスタンプの位置に変更されます。
この方法は、実際にはほとんど使用されません。

3. uuid.uuid3(名前空間、名) - 名前ベースのMD5ハッシュ値

価値MD5ハッシュ名と名前空間を算出することにより、同じ名前空間の一意性、別の名前ことを保証するために、
同じ名前空間内で一意と異なる名前空間が、同じ名前で同じUUIDを生成します。

4. uuid.uuid4() - 乱数に基づいて

擬似乱数から得られた、繰り返しのある確率がある、確率を計算することができます。

5. uuid.uuid5() - SHA-1ハッシュ値の名前に基づいて

そのセキュアハッシュアルゴリズム1アルゴリズムを除いて同じアルゴリズムとuuid3、

 

いくつかの方法は、上述した機能を使用します。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
>>> import uuid # 导入UUID模块

>>> # make a UUID based on the host ID and current time
>>> uuid.uuid1()
UUID('a8098c1a-f86e-11da-bd1a-00112444be1e')

>>> # make a UUID using an MD5 hash of a namespace UUID and a name
>>> uuid.uuid3(uuid.NAMESPACE_DNS, 'python.org')
UUID('6fa459ea-ee8a-3ca4-894e-db77e160355e')

>>> # make a random UUID
>>> uuid.uuid4()
UUID('16fd2706-8baf-433b-82eb-8c7fada847da')

>>> # make a UUID using a SHA-1 hash of a namespace UUID and a name
>>> uuid.uuid5(uuid.NAMESPACE_DNS, 'python.org')
UUID('886313e1-3b8a-5372-9b90-0c9aee199e5d')

>>> # make a UUID from a string of hex digits (braces and hyphens ignored)
>>> x = uuid.UUID('{00010203-0405-0607-0809-0a0b0c0d0e0f}')

>>> # convert a UUID to a string of hex digits in standard form
>>> str(x)
'00010203-0405-0607-0809-0a0b0c0d0e0f'

>>> # get the raw 16 bytes of the UUID
>>> x.bytes
'\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f'

>>> # make a UUID from a 16-byte string
>>> uuid.UUID(bytes=x.bytes)
UUID('00010203-0405-0607-0809-0a0b0c0d0e0f')

例:

まず第一に、UUID2を無視できるようにPythonは、DCEベースではなく、
繰り返しの第二に、uuid4存在確率、ではないのマッピングではなく、最善のことで、
再び、グローバルでのコンピューティング環境は、分散場合、好ましくはUUID1と;
そして最後に、名前固有の要件であれば、好ましくはuuid3またはuuid5と。

1
2
3
4
5
6
7
8
import uuid
name = "test_name"
namespace = "test_namespace"

print uuid.uuid1()  # 带参的方法参见Python Doc
print uuid.uuid3(namespace, name)
print uuid.uuid4()
print uuid.uuid5(namespace, name)

 

UUIDモジュールのドキュメントします。https://docs.python.org/2/library/uuid.html

おすすめ

転載: www.cnblogs.com/plusUltra/p/11348077.html