UUID中中的名字和名字空间代表什么?如何获得?
如题。在UUID中的v3和v5都需要名字和名字空间,百思不得其解。它们代表是什么?如何获得呢?
回复内容:
如题。在UUID中的v3和v5都需要名字和名字空间,百思不得其解。它们代表是什么?如何获得呢?
记得有次和甲方两个小伙子说道GUID,一字一顿的:“全-球-唯-一-ID”的时候,我看到本来认为技术枯燥无味的他们,眼中放出的光芒!。因为这背后有故事。这title,很响亮。
题主对命名空间和名字,百思不得其解,是因为缺乏问题的上下文,而不是 @_404_MrYes 谈及的细节。首要在于去理解:“要设计一个唯一的ID,会遇到的问题和解决方案”。
设计一个唯一id,是非常有用。比如网卡的mac地址,就得是唯一的。不如地址冲突了,网卡重复地址出现在一个公司的局域网内,发给同一地址的人,有两个或者多个人收到,就乱了。整个局域网协议都以mac地址唯一为基础,因此唯一id,是整个系统的基础。
那么,mac地址如何做到唯一?mac地址会有一个集中的机构制定一个号段,好比1号段给3com,二号给tp-link,etc .然后在这个号段内,每个网卡制造商建立自己的号,一个网卡一个。只要在自己号段内不重复,就可以保证在全世界不重复。类似的做法很多,比如条码,每个商品理论上也需要唯一,做法也类似,就是工商局(条码办)的机构,搞号段。类似的机构很多的。我要是有机会,也想去这样的地方任职,搞搞分配:)。只要是需要资源分配,不能重复的,都需要。比如各个地方的无线电委员会,划分频段资源。航空的航路也需要分配。电信管理局这样的傻部门,就负责028给成都,025给武汉的节奏。无处不在哦。
可是,在互联网的条件下,这样的统一的机构很讨厌啊是不是。去中心化的互联网,天然反感这样的集中和垄断,必然的效率损失,要是这个机构脸难看,门难进,就更加讨厌了。最好是大家做出约定,每个人有自己的命名空间,在自己的地盘内,随便自己撒野,怎么玩都行,要是内部重复了,也只会伤害自己。多自由。这样,核心问题就是,是否有每个机构自己的,“天然的”,命名空间,这个空间内,自己规划自己的名字。所有的名字都在一个或者多个自己的空间内。这就是namespace的含义。
这样,你就比较好了解rfc中的 Motivation,就是去中心化(no cnetralized authority):
One of the main reasons for using UUIDs is that no centralized
authority is required to administer them (although one format uses
IEEE 802 node identifiers, others do not)
ref: http://tools.ietf.org/html/rfc4122#page-13
这样的‘天然的“命名空间,还是真有,比如microsoft 就可以说,microsoft.com就是我的命名空间,在这空间下,microsoft.com/1 就是操作系统部门,/2就是开发部门。microsoft就获得了自由。你公司是foo.com.cn ,那么/1是总经理,/2 。。etc。你获得了自由。专职的分配委员会之类的寄生虫,就不在必要了。
UUID就是这样的思路。名字空间+名字,保证每个机构用自己的名字空间,在名字空间内决定自己的名字,这样保证内部不重复,在外部也就不会重复。
我发现,我很喜欢科普哦。
rfc4122 4.3. Algorithm for Creating a Name-Based UUID
这里面有提及说
- 同一namespace下,不同name的uuid不同
- 同一namespace下,相同的name的uuid一定相同
- 不同的namespace下,uuid一定不同
- 如果两个name的UUID相同,那么一定是来自同一namespace下的同一name
关于name选取:
<code>The concept of name and name space should be broadly construed, and not limited to textual names. For example, some name spaces are the domain name system, URLs, ISO Object IDs (OIDs), X.500 Distinguished Names (DNs), and reserved words in a programming language. </code>
如何获取
<code><br> o Allocate a UUID to use as a "name space ID" for all UUIDs generated from names in that name space; see Appendix C for some pre-defined values. o Choose either MD5 [4] or SHA-1 [8] as the hash algorithm; If backward compatibility is not an issue, SHA-1 is preferred. </code>
v3版本:md5
v5版本:sha-1
BTW,这个问题google一下不就出来了么?

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen











Dieses Tutorial zeigt, wie XML -Dokumente mit PHP effizient verarbeitet werden. XML (Extensible Markup-Sprache) ist eine vielseitige textbasierte Markup-Sprache, die sowohl für die Lesbarkeit des Menschen als auch für die Analyse von Maschinen entwickelt wurde. Es wird üblicherweise für die Datenspeicherung ein verwendet und wird häufig verwendet

JWT ist ein offener Standard, der auf JSON basiert und zur sicheren Übertragung von Informationen zwischen Parteien verwendet wird, hauptsächlich für die Identitätsauthentifizierung und den Informationsaustausch. 1. JWT besteht aus drei Teilen: Header, Nutzlast und Signatur. 2. Das Arbeitsprinzip von JWT enthält drei Schritte: Generierung von JWT, Überprüfung von JWT und Parsingnayload. 3. Bei Verwendung von JWT zur Authentifizierung in PHP kann JWT generiert und überprüft werden, und die Funktionen und Berechtigungsinformationen der Benutzer können in die erweiterte Verwendung aufgenommen werden. 4. Häufige Fehler sind Signaturüberprüfungsfehler, Token -Ablauf und übergroße Nutzlast. Zu Debugging -Fähigkeiten gehört die Verwendung von Debugging -Tools und Protokollierung. 5. Leistungsoptimierung und Best Practices umfassen die Verwendung geeigneter Signaturalgorithmen, das Einstellen von Gültigkeitsperioden angemessen.

Statische Bindung (statisch: :) implementiert die späte statische Bindung (LSB) in PHP, sodass das Aufrufen von Klassen in statischen Kontexten anstatt Klassen zu definieren. 1) Der Analyseprozess wird zur Laufzeit durchgeführt.

Eine Zeichenfolge ist eine Folge von Zeichen, einschließlich Buchstaben, Zahlen und Symbolen. In diesem Tutorial wird lernen, wie Sie die Anzahl der Vokale in einer bestimmten Zeichenfolge in PHP unter Verwendung verschiedener Methoden berechnen. Die Vokale auf Englisch sind a, e, i, o, u und sie können Großbuchstaben oder Kleinbuchstaben sein. Was ist ein Vokal? Vokale sind alphabetische Zeichen, die eine spezifische Aussprache darstellen. Es gibt fünf Vokale in Englisch, einschließlich Großbuchstaben und Kleinbuchstaben: a, e, ich, o, u Beispiel 1 Eingabe: String = "TutorialPoint" Ausgabe: 6 erklären Die Vokale in der String "TutorialPoint" sind u, o, i, a, o, ich. Insgesamt gibt es 6 Yuan

Was sind die magischen Methoden von PHP? Zu den magischen Methoden von PHP gehören: 1. \ _ \ _ Konstrukt, verwendet, um Objekte zu initialisieren; 2. \ _ \ _ Destruct, verwendet zur Reinigung von Ressourcen; 3. \ _ \ _ Call, behandeln Sie nicht existierende Methodenaufrufe; 4. \ _ \ _ GET, Implementieren Sie den dynamischen Attributzugriff; 5. \ _ \ _ Setzen Sie dynamische Attributeinstellungen. Diese Methoden werden in bestimmten Situationen automatisch aufgerufen, wodurch die Code -Flexibilität und -Effizienz verbessert werden.

PHP und Python haben jeweils ihre eigenen Vorteile und wählen nach den Projektanforderungen. 1.PHP ist für die Webentwicklung geeignet, insbesondere für die schnelle Entwicklung und Wartung von Websites. 2. Python eignet sich für Datenwissenschaft, maschinelles Lernen und künstliche Intelligenz mit prägnanter Syntax und für Anfänger.

PHP ist eine Skriptsprache, die auf der Serverseite weit verbreitet ist und insbesondere für die Webentwicklung geeignet ist. 1.PHP kann HTML einbetten, HTTP -Anforderungen und Antworten verarbeiten und eine Vielzahl von Datenbanken unterstützt. 2.PHP wird verwendet, um dynamische Webinhalte, Prozessformdaten, Zugriffsdatenbanken usw. mit starker Community -Unterstützung und Open -Source -Ressourcen zu generieren. 3. PHP ist eine interpretierte Sprache, und der Ausführungsprozess umfasst lexikalische Analyse, grammatikalische Analyse, Zusammenstellung und Ausführung. 4.PHP kann mit MySQL für erweiterte Anwendungen wie Benutzerregistrierungssysteme kombiniert werden. 5. Beim Debuggen von PHP können Sie Funktionen wie error_reporting () und var_dump () verwenden. 6. Optimieren Sie den PHP-Code, um Caching-Mechanismen zu verwenden, Datenbankabfragen zu optimieren und integrierte Funktionen zu verwenden. 7

PHP wird in E-Commerce, Content Management Systems und API-Entwicklung häufig verwendet. 1) E-Commerce: Wird für die Einkaufswagenfunktion und Zahlungsabwicklung verwendet. 2) Content -Management -System: Wird für die Erzeugung der dynamischen Inhalte und die Benutzerverwaltung verwendet. 3) API -Entwicklung: Wird für die erholsame API -Entwicklung und die API -Sicherheit verwendet. Durch Leistungsoptimierung und Best Practices werden die Effizienz und Wartbarkeit von PHP -Anwendungen verbessert.
