当前位置:清晨 » 站长笔记 » 自用代码 » UUID(通用唯一标识符)

UUID(通用唯一标识符)

发布日期:2018年12月28日 11:12:52 点击量: 1,639

宝塔服务器面板,一键全能部署及管理,送你¥3188礼包,点我领取,简单好用的 Linux/Windows 面板

UUID是由一组32位数的16进制数字所构成,是故UUID理论上的总数为16^32=2^128,约等于3.4 x 10^38。也就是说若每纳秒产生1兆个UUID,要花100亿年才会将所有UUID用完。
UUID的标准型式包含32个16进制数字,以连字号分为五段,形式为8-4-4-4-12的32个字符。示例:
550e8400-e29b-41d4-a716-446655440000
UUID亦可刻意重复以表示同类。例如说微软的COM中,所有组件皆必须实现出IUnknown接口,方法是产生一个代表IUnknown的UUID。无论是程序试图访问组件中的IUnknown接口,或是实现IUnknown接口的组件,只要IUnknown一被使用,皆会被参考至同一个ID:00000000-0000-0000-C000-000000000046。

生成方法

PHP

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′

C#

using System;
namespace Demo{
public class Test{
public static void Main()
{
Guid guid=Guid.NewGuid();
Console.WriteLine(guid);
}
}
}

C++ //基于boost

#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);

Java

packagecom.mytest;
importjava.util.UUID;
publicclassUTest {
publicstaticvoidmain(String[] args) {
UUID uuid = UUID.randomUUID();
System.out.println(uuid);
}
}

GO

package main
import(
"github.com/nu7hatch/gouuid"
"fmt"
)
func main(){
fmt.Println(uuid.NewV4())
}

Python

#coding=utf-8
import uuid
name = 'test_name'
namespace = 'test_namespace'
print uuid.uuid1()
print uuid.uuid3(namespace,name)
print uuid.uuid4()
print uuid.uuid5(namespace,name)


关键词:

本文网址:https://www.menglei.info/2733/,转载请以链接形式注明出处,谢谢合作!

老薛主机专属优惠码: PT ,有需要购买的同学可以使用.可享受30%的优惠.

联系站长: shadoweb@qq.com QQ: 925474725

2条回应:“UUID(通用唯一标识符)”

  1. 老董博客说道:

    交换链接吗

发表评论

电子邮件地址不会被公开。 必填项已用*标注