Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >在 WordPress 中使用 UUID

在 WordPress 中使用 UUID

作者头像
Denis
发布于 2023-04-24 03:48:04
发布于 2023-04-24 03:48:04
45500
代码可运行
举报
文章被收录于专栏:WordPress果酱WordPress果酱
运行总次数:0
代码可运行

今天简单介绍一下 UUID 和在 WordPress 中的使用:

什么是 UUID

UUID,是Universally Unique Identifier的缩写,UUID出现的目的,是为了让分布式系统可以不借助中心节点,就可以生成UUID来标识一些唯一的信息;

UUID来自于IETF发布的一个规范:A Universally Unique IDentifier (UUID) URN Namespace

1个UUID是1个16字节(128位)的数字,为了方便阅读,通常将UUID表示成如下的格式:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx

使用连字符将其分为五段,形成8-4-4-4-12这样的32个字符,其中的字母是16进制数字,大小写无关,一个具体的UUID:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
123e4567-e89b-12d3-a456-426655440000

特别注意下,N那个位置,只会是8,9,a,b。M那个位置,代表版本号,由于UUID的标准实现有5个版本,所以只会是1,2,3,4,5

UUID的不同版本

UUID本身也经过了多个版本的演化,每个版本的算法都不同。

版本1:基于时间

通过当前时间戳和机器MAC地址生成,由于在算法中使用了MAC地址,这个版本的UUID可以保证在全球范围的唯一性。但与此同时,因为它暴露了电脑的MAC地址(最后的12个字符)和生成的时间,这就是这个版本被诟病的地方。

版本2:DCE安全

DCE安全的UUID和基于时间的UUID算法相同,但会把时间戳的前4位置换为POSIX的UID或GID。不过,在UUID的规范里面没有明确地指定,所以基本上所有的UUID实现都不会实现这个版本。

版本3:基于命名空间(MD5)

由用户指定1个命名空间和1个具体的字符串,通过MD5散列来生成,这个版本也很少用到。

版本4:基于随机数

根据随机数,或者伪随机数生成UUID,这种UUID产生重复的概率是可以计算出来的,这个版本应该是用得最多的版本了;

版本5:基于命名空间(SHA1)

和版本3一样,不过散列函数换成了SHA1

在 WordPress 中使用

WordPress 在 4.9 版本的时候引入了一个判断 UUID 的函数 wp_is_uuid,他有两个参数,uuid 和 version,他可以判断 uuid 是不是一个有效的 UUID, version 可以指定版本,目前只支持版本 4。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
wp_is_uuid('123e4567-e89b-12d3-a456-426655440000'); // 返回 true
wp_is_uuid('123e4567-e89b-12d3-a456-426655440000'4); // 返回 false

因为 WordPress 中没有创建 UUID 的函数,所以我在 WPJAM Basic 中实现了创建 UUID 的函数:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function wpjam_create_uuid(){
	$chars	= md5(uniqid(mt_rand(), true));
	
	return substr($chars, 0, 8).'-'
	.substr($chars, 8, 4).'-'
	.substr($chars, 12, 4).'-'
	.substr($chars, 16, 4).'-'
	.substr($chars, 20, 12);
}

下面是使用该函数创建的 10 个 uuid:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cfd6f02f-fc15-42eb-52e4-1c7476c5ca7e
1140a68c-66de-6eff-e575-efac7235edc1
0886c1bd-34d4-19ea-aae4-8e871a6d39ad
8aff65a2-bfdd-b762-aec4-698eef3ab095
00cb4d8c-bb48-53e5-561e-e26d006a60e6
0d9cdc41-78af-3231-948a-cf29d8338ae2
74a4eea8-d683-ba7e-023b-73cae2f10bb9
1d40473b-ac15-e9a2-bc7f-a43fd3de3fd8
5129750a-0b23-7789-9a4f-c4704f90bb03
39edd5ee-9a5d-6729-df42-b3c522ae96e1
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
UUID
UUID,是Universally Unique Identifier的缩写,UUID出现的目的,是为了让分布式系统可以不借助中心节点,就可以生成UUID来标识一些唯一的信息;
Dean0731
2021/03/05
4K0
UUID 的 5 个版本
UUID 的全称是 Universally Unique Identifier,中文为通用唯一识别码。
HoneyMoose
2023/11/05
6730
UUID 的 5 个版本
Golang 库 - uuid
UUID(Universally Unique IDentifier)是一个128位数字的唯一标识。
twowinter
2020/04/17
14.5K0
分布式ID系列(2)——UUID适合做分布式ID吗
UUID的方式能生成一串唯一随机32位长度数据,它是无序的一串数据,按照开放软件基金会(OSF)制定的标准计算,UUID的生成用到了以太网卡地址、纳秒级时间、芯片ID码和许多可能的数字。UUID的底层是由一组32位数的16进制数字构成,是故 UUID 理论上的总数为[1565060542.png] ,约等于[1565060554.png],也就是说若每纳秒产生1百万个 UUID,要花100亿年才会将所有 UUID 用完(100亿年啊,地球都没了),所以这足够我们的使用了,也能够保证唯一性。
IT乾坤
2019/08/22
1.9K0
分布式ID系列(2)——UUID适合做分布式ID吗
python3模块: uuid
一. 简介   UUID是128位的全局唯一标识符,通常由32字节的字母串表示。它可以保证时间和空间的唯一性,也称为GUID。 全称为:UUID--Universally Unique IDentifier 在python 中叫做UUID,在C#中称为 GUID--Globally Unique IDentifier. 它通过MAC地址,时间戳,命名空间,随机数,伪随机数来保证生成ID的唯一性。   UUID主要有五个算法,也就是五种方法来实现。 (1). uuid1()---基于时间戳   由MAC地址,
程序员同行者
2018/06/22
1.5K0
UUID 简介
老猫-Leo
2023/12/11
7930
唯一识别码之UUID入门与实战
上一篇从身份证号是如何生成,来认识了中心机构下生成唯一标识的方法,这一篇来看看面对庞大的计算机世界,无中心机构时,那又如何生成唯一标识呢?
用户1462769
2019/08/18
4.1K0
[152]python使用UUID库生成唯一ID
Python官方Doc:《20.15. uuid — UUID objects according to RFC 4122》 UUID的算法介绍:《A Universally Unique IDentifier (UUID) URN Namespace》
周小董
2022/04/12
1.2K0
Vue使用uuid-npm快速生成uuid,适用于多种场景
UUID 是 通用唯一识别码(Universally Unique Identifier)的缩写,是一种软件建构的标准,亦为开放软件基金会组织在分布式计算环境领域的一部分。其目的,是让分布式系统中的所有元素,都能有唯一的辨识信息,而不需要通过中央控制端来做辨识信息的指定。
德顺
2023/08/25
2K0
Vue使用uuid-npm快速生成uuid,适用于多种场景
Vue使用uuid-npm快速生成uuid,适用于多种场景
UUID 是 通用唯一识别码(Universally Unique Identifier)的缩写,是一种软件建构的标准,亦为开放软件基金会组织在分布式计算环境领域的一部分。其目的,是让分布式系统中的所有元素,都能有唯一的辨识信息,而不需要通过中央控制端来做辨识信息的指定。
德顺
2020/08/19
25K0
Vue使用uuid-npm快速生成uuid,适用于多种场景
冷饭新炒:理解JDK中UUID的底层实现
UUID是Universally Unique IDentifier的缩写,翻译为通用唯一标识符或者全局唯一标识符。对于UUID的描述,下面摘录一下规范文件A Universally Unique IDentifier (UUID) URN Namespace中的一些描述:
Throwable
2021/02/02
1.2K0
python中uuid模块
1. 背景知识:   UUID: 通用唯一标识符 ( Universally Unique Identifier ), 对于所有的UUID它可以保证在空间和时间上的唯一性. 它是通过MAC地址, 时间
狼啸风云
2019/08/31
1.8K0
Python 如何生成uuid
Python中内置了一个名为uuid包来处理UUID的生成,使用起来非常方便,它提供了生成36位uuid的方法(32位加上4个’-'号作为间隔符,如果不需要间隔符可以手动去掉)。
Steve Wang
2022/04/13
2.8K0
Python 如何生成uuid
分布式ID生成方案
不管我们是不是有身份的人,我们一定是有身份证的人,身份证上面的号码就是我们的ID,理论上这个ID是全国唯一的,而且通过这个号码,我们还可以得到一些个人信息,比如前两位可以确定我们第一次申请身份证的时候所在的省份、接下来的四位可以确定我们所在的区县,然后还可以知道我们出生的年月以及性别。
Spark学习技巧
2021/03/05
7880
分布式ID生成方案
java uuid 随机数_Java随机数和UUID[通俗易懂]
在Java项目中通常是通过Math.random方法和Random类来获得随机数,前者通过生成一个Random类的实例来实现。
全栈程序员站长
2022/09/14
3K0
java中使用uuid函数_java生成随机数
UUID是Universally Unique Identifier的缩写,它是在一定的范围内(从特定的名字空间到全球)唯一的机器生成的标识符。UUID具有以下涵义:
全栈程序员站长
2022/11/09
1.1K0
【Python模块】Python UUI
uuid是128位的全局唯一标识符(univeral unique identifier),通常用32位的一个字符串的形式来表现。有时也称guid(global unique identifier)。python中自带了uuid模块来进行uuid的生成和管理工作。(具体从哪个版本开始有的不清楚。。)
py3study
2020/01/10
1.2K0
uuid生成唯一数字_java组件有哪些
UUID含义是通用唯一识别码 (Universally Unique Identifier),这 是一个软件建构的标准,也是被开源软件基金会 (Open Software Foundation, OSF) 的组织在分布式计算环境 (Distributed Computing Environment, DCE) 领域的一部份。UUID 的目的,是让分布式系统中的所有元素,都能有唯一的辨识资讯,而不需要透过中央控制端来做辨识资讯的指定。如此一来,每个人都可以建立不与其它人冲突的 UUID。在这样的情况下,就不需考虑数据库建立时的名称重复问题。目前最广泛应用的 UUID,即是微软的 Microsoft’s Globally Unique Identifiers (GUIDs),而其他重要的应用,则有 Linux ext2/ext3 档案系统、LUKS 加密分割区、GNOME、KDE、Mac OS X 等等。
全栈程序员站长
2022/11/08
9550
java生成UUID
UUID含义是通用唯一识别码 (Universally Unique Identifier),这是一个软件建构的标准,也是被开源软件基金会 (Open Software Foundation, OSF) 的组织应用在分布式计算环境 (Distributed Computing Environment, DCE) 领域的一部分。
用户7353950
2022/05/11
1.7K0
唯一ID生成算法剖析引UUID数据库自增ID雪花算法方案对比
在业务开发中,大量场景需要唯一ID来进行标识:用户需要唯一身份标识;商品需要唯一标识;消息需要唯一标识;事件需要唯一标识...等等,都需要全局唯一ID,尤其是分布式场景下。
Cloudox
2021/11/23
2.4K0
唯一ID生成算法剖析引UUID数据库自增ID雪花算法方案对比
相关推荐
UUID
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验