当前位置:首页 > 站长笔记 > 自用代码 > 正文
运行天数:2959 天 最后更新:2020-5-24

UUID(通用唯一标识符)

用手机或者平板电脑扫描应用扫描本二维码,可以在手机浏览器继续浏览,也可以分享给你的联系人。

2018年12月28日 | 作者: 影子 | 分类: 自用代码 | 点击量: 2,744

WDJA网站内容管理系统,免费开源可商用 点我获取,简单好用的PHP版CMS

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.net/2733/,转载请以链接形式注明出处,谢谢合作!

*本站部分内容转载自其他媒体,版权归其所有。如若内容或图片侵犯您的权益,请与本站联系,我们将在24小时内处理完毕。

作者:清晨@深圳网站建设专家. | 清晨,领先的深圳网站优化品牌。

交流QQ号:925474725 邮件支持:shadoweb@qq.com