UUID 是 通用唯一識別碼(Universally Unique Identifier)的縮寫,是一種軟體建構的標準,亦為開放軟體基金會組織在分散式計算環境領域的一部分。其目的,是讓分散式系統中的所有元素,都能有唯一的辨識信息,而不需要通過中央控制端來做辨識信息的指定。如此一來,每個人都可以創建不與其它人衝突的UUID。在這樣的情況下,就不需考慮資料庫創建時的名稱重複問題。目前最廣泛套用的UUID,是微軟公司的全局唯一標識符(GUID),而其他重要的套用,則有Linux ext2/ext3檔案系統、LUKS加密分區、GNOME、KDE、Mac OS X等等。另外我們也可以在e2fsprogs包中的UUID庫找到實現。
基本介紹
- 中文名:通用唯一識別碼
- 外文名:Universally Unique Identifier
- 簡稱:UUID
- 類別:識別碼
- 套用:分散式計算環境
作用
組成
套用
定義
- 550e8400-e29b-41d4-a716-446655440000
重複機率
n | 機率 |
---|---|
68,719,476,736 = 2^36 | 0.0000000000000004 (4 x 10^-16) |
2,199,023,255,552 = 2^41 | 0.0000000000004 (4 x 10^-13) |
70,368,744,177,664 = 2^46 | 0.0000000004 (4 x 10^-10) |
代碼生成
function uuid($prefix = ''){ $chars = md5(uniqid(mt_rand(), true)); $uuid = substr($chars,0,8) . '-'; $uuid .= substr($chars,8,4) . '-'; $uuid .= substr($chars,12,4) . '-'; $uuid .= substr($chars,16,4) . '-'; $uuid .= substr($chars,20,12); return $prefix . $uuid;} //Example of using the function -//Using without prefix.echo uuid(); //Returns like ‘1225c695-cfb8-4ebb-aaaa-80da344e8352′
using System;namespace Demo{ public class Test{ public static void Main(){ Guid guid=Guid.NewGuid(); Console.WriteLine(guid); } }}
#include <boost/uuid/uuid.hpp>#include <boost/uuid/uuid_io.hpp>#include <boost/uuid/uuid_generators.hpp> boost::uuids::uuid zcq_uuid = boost::uuids::random_generator()(); // 這裡是兩個() ,因為這裡是調用的 () 的運算符重載const string dqsj_uuid = boost::uuids::to_string(zcq_uuid);
package com.mytest;import java.util.UUID;public class UTest { public static void main(String[] args) { UUID uuid = UUID.randomUUID(); System.out.println(uuid); }}
package mainimport("github.com/nu7hatch/gouuid" "fmt")func main(){ fmt.Println(uuid.NewV4())}
#coding=utf-8import uuidname = 'test_name'namespace = 'test_namespace'print uuid.uuid1()print uuid.uuid3(namespace,name)print uuid.uuid4()print uuid.uuid5(namespace,name)