Diskussion:Universally Unique Identifier

Letzter Kommentar: vor 2 Jahren von Cljk in Abschnitt Verwendung

Ist der Berechnungsalgorithmus standardisiert? Gibt es DEN Algorithmus? Bearbeiten

In einem Dokument (nicht im Artikel) lese ich: "... an UUID according to the standardized building algorithm ...". Nach meinem Verständnis gibt es den einen Algorithmus nicht. Im RFC werden ja bereits unterschiedliche Algorithmen beschrieben. Ist das im ISO-Standard ggf. anders? Wäre schön, wenn der Artikel die Frage klären würde. -- Ormek 11:10, 10. Aug. 2009 (CEST)Beantworten

Weitere Fragen Bearbeiten

  1. Ein Computer kann durchaus mehr als eine MAC-Adresse, aber auch keine MAC-Adresse haben. MAC-Adressen sind außerdem nicht einzigartig, sondern können teilweise verändert werden.
  2. Prinzipiell wäre es doch möglich, eine "normal generierte" UUID vorzugaukeln, die aber tatsächlich eine Kopie einer UUID ist, deren Identität man stehlen möchte. Was dann?

--Abdull 16:58, 4. Apr. 2007 (CEST)Beantworten

Irgendwie wird nicht klar, was genau die uuid denn nun identifiziert. Ein kurzer Satz wie "Die UUID identifiziert jegliche Software eindeutlig über einen 16-Byte-Schlüssel" wäre gut. (Ich schreib ihn nicht rein, weil ich nicht weiß, ob er so stimmt - war nur ein Beispielsatz). --84.156.217.111 16:58, 19. Sep. 2007 (CEST)Beantworten

Was die UUID identifiziert ist stark kontextabhängig. Je nach Anwendung eben!

Open Software Foundation Bearbeiten

Im Artikel heißt es: "Er ist von der Open Software Foundation (OSF) als Teil des Distributed Computing Environment (DCE) standardisiert." Weiter unten wird dann aber erwähnt UUIDs wäre ISO standardisiert. Die OSF ist doch auch gar kein Standardisierungsorgan bzw. kann doch gar nichts standardisieren. Macht es da nicht vielleicht Sinn den Satz zu streichen?

Zumal die OSF ja mit X/Open zusammen zur Open Group verschmolzen ist, also als solche gar nicht mehr existiert. Ich würde mal behaupten, dass das eine historische Information ist und besser als "Er wurde von der Open Software Foundation (OSF) als Teil des Distributed Computing Environment (DCE) erstmals standardisiert." formuliert ist. Wobei ich mir nicht sicher bin, ob das "erstmals" inhaltlich richtig ist. Wenn niemand etwas dagegen hat, würde ich das demnächst mal abändern. --Noresoft (Diskussion) 19:19, 3. Nov. 2016 (CET)Beantworten
Hab das jetzt mal ohne "erstmals" editiert. Also einfach nur die Zeitform geändert. --Noresoft (Diskussion) 15:43, 26. Nov. 2016 (CET)Beantworten

Ziferngruppierung Bearbeiten

Woher kommt die seltsame Zifferngruppierung? Steckt da irgend ein tieferer Sinn dahinter? --RokerHRO 23:10, 9. Apr. 2008 (CEST)Beantworten

Im verlinkten RFC 4122 wird es in der Tat erklärt. Scheint also eher historischer Natur zu sein, wenn heutzutage eh nur noch (pseudo)random-generierte oder durch Hashing entstandene UUIDs benutzt werden. :-/ --RokerHRO 21:18, 23. Jul. 2008 (CEST)Beantworten

begrenzter Nummernraum Bearbeiten

Wie in Kapitel 4.4 im verlinkten RFC 4122 zu lesen ist, sind bei "randomgenerierten" UUIDs nicht alle Bits (pseudo)zufällig, da 6 Bits auf einen festen Wert gesetzt werden sollen. Damit sind nur noch 122 Zufallbits in der UUID enthalten. Also steigt die Kollisionswahrscheinlichkeit um den Faktor 64. Das sollte im Artikel schon erwähnt werden, finde ich. --RokerHRO 21:22, 23. Jul. 2008 (CEST)Beantworten

Java Bearbeiten

Wieso wird im Artikel ausgerechnet Java Release 5.0 explizit erwähnt? Das ist m.E. nach völlig irrelevant. Man könnte hier so viele Beispiele für Implementierungen angeben, dass es Seiten füllen würde. Ich bin dafür die Java-betreffenden Sätze zu streichen, und vielleicht höchstens durch etwas wie "nahezu alle Programmierumgebungen bieten APIs zur Generierung von UUIDs an". Wobei ich auch das schon eher weglassen würde.

Was die englische Wikipedia übrigens auch macht: Implementations (eine Liste von Implementationen). Dort wird auch klarer, dass Java Typ 3 und 4 implementiert. Im deutschen Artikel sieht es so aus, als würde das JDK nur Typ 4 mitbringen. Ich finde Beispiele von Implementationen nicht schlecht und bei Java kann man auch leicht den Quelltext nachschlagen --Arittner 09:59, 23. Nov. 2010 (CET)Beantworten

Second Life Bearbeiten

warum wird Second Life erwähnt (nicht signierter Beitrag von 78.53.84.123 (Diskussion | Beiträge) 17:23, 10. Mär. 2009 (CET)) Beantworten

Ich habe die Second Life wieder entfernt. --Fomafix 17:37, 10. Mär. 2009 (CET)Beantworten

Redundant mit Artikel GUID Bearbeiten

Das meiste hier wird bereits in GUID beschrieben, die Artikel sollten vereint werden! (nicht signierter Beitrag von 193.26.194.93 (Diskussion | Beiträge) 15:18, 16. Jun. 2009 (CEST)) Beantworten

Ich stimme zu, da GUID eine Implementation von UUID ist und beide im Grunde das Gleiche sind. Die Eigenheiten von GUID ließen sich genauso gut als Unterpunkt in diesem Artikel auflisten. --Carminox 23:10, 7. Dez. 2009 (CET)Beantworten

Ich möchte das Thema gerne nochmal aufbringen und habe dazu auf der GUID-Seite ebenfalls einen entsprechenden Diskussioneintrag erstellt: http://de.wikipedia.org/wiki/Diskussion:Globally_Unique_Identifier#GUID_mit_UUID_zusammenf.C3.BChren --Mlorer 12:41, 21. Okt. 2011 (CEST)Beantworten

Crash-Wahrscheinlichkeit Bearbeiten

Obwohl die Eindeutigkeit für generierte UUID nicht garantiert ist, ist die Gesamtzahl der zufällig generierten UUIDs (Version 4) mit 2^{122} ≈ 5{,}3169 · 10^{36} so groß, dass die Wahrscheinlichkeit der Erzeugung zweier gleicher UUIDs sehr klein ist.

So einen Dummfug habe ich selten gelesen. Wenn tatsächlich alle Algorithmen unvorhersagbar neutral über den gesamten Werteraum verteilen würden, wäre das vielleicht richtig, aber dem ist ja nicht so. Tausende von Rechnern weisen nur winzige Unterschiede auf (Gangungenauigkeiten der Systemuhr, unterschiedliche Netzwerknamen usw.) und haben keinerlei verwendbare Zufallsquellen. Ein Crash ist extrem wahrscheinlich. Da es aber keinen Mechanismus gibt, einen Crash festzustellen, ist das Ergebnis in dem Falle unbestimmt...--78.50.245.41 23:01, 5. Okt. 2009 (CEST)Beantworten

Hab diese Einschränkung hinzugenommen. So besser? --RokerHRO 13:05, 6. Jan. 2010 (CET)Beantworten

Fehler im Beispiel? Bearbeiten

3.Diese Bytesequenz ist mit SHA1 zu hashen. Das Ergebnis ist folgender SHA1-Hash: 2ed6657de927468b55e12665a8aea6a22dee3e35
...
5.Generierte UUID: 353e332d-a2a6-58ae-A526-e1558b4627e9. (Die fett markierten Stellen enthalten feste Bits aus UUID-Variante und -Version.)

Müsste die Generierte UUID nicht mit 353eee2d- beginnen? (nicht signierter Beitrag von 217.116.64.48 (Diskussion) 12:48, 21. Mai 2010 (CEST)) Beantworten

Nicht nur das: das Beispiel ist komplett falsch. Nachvollziehar in Python:
import uuid
uuid.uuid5(uuid.NAMESPACE_DNS,'www.example.org')
# -> UUID('74738ff5-5367-5958-9aee-98fffdcd1876')
Kontrolle:
import hashlib, uuid
s=uuid.NAMESPACE_DNS.bytes+"www.example.org"
h=hashlib.sha1(s)
h.hexdigest()
# -> '74738ff55367e9589aee98fffdcd187694028007'
Bin dann mal so frei, zu korrigieren. --93.212.89.5 23:58, 1. Dez. 2010 (CET)Beantworten

Ich bin gerade darauf hingewiesen worden (siehe StackOverflow, daß die URL in der Bytesequenz fälschlicherweise "example.com" statt "example.org" ist und habe das korrigiert, der SHA1-Hash stimmt aber scheinbar (wie ja auch in obigem Python-Code ersichtlich). -- Schnaader 09:43, 6. Apr. 2011 (CEST)Beantworten

Speicherort UUIDs Bearbeiten

Hilfreich wären Hinweise auf den Ort an dem die UUID gespeichert werden und auf Tools mit denen man sie ausleswn kann.

Darüber kann man IMHO nichts schreiben, denn es gibt nicht einen Ort wo UUID gespeichert werden. UUID finden in verschiedenen Betriebssystemen, Anwendungsprogrammen, Datenbanken usw. verschiedene Verwendung und werden in unterschiedlichem Zusammenhang zu unterschiedlichem Zweck auf unterschiedliche Art gespeichert.
Einzig Beispiele könnten gegeben werden. Mir fällt da die Windows-Registry ein, in der UUID (bzw. streng genommen GUID) als Keys eingesetzt werden, z.B. unter HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceClasses. --jailbird 16:24, 3. Mär 2006 (CET)
Aber werden die nicht irgendwie auf dem Gerät gespeichert? Das muss ja eindeutig erkennbar sein, zumindest von einem Computer. Wie soll der sonst noch wissen, welche uuid der USB-Stick oder die Maus hatte? Das finde ich im Artikel nirgends, wäre aber etwa das Interessanteste/Wichtigste. – Simon Diskussion/Galerie 20:38, 27. Jan. 2007 (CET)Beantworten
Im Falle der Registry stehen die Keys sehr oft als Wert in anderen Registryeinträgen, d.h. sie stellen die Verknüpfung eines Eintrages mit anderen dar. Sie können aber genausogut auch in Konfigdateien irgendwelcher Programme stehen. Es ist aber auch wurscht und für den Artikel meines Erachtens überhaupt nicht von Belang. Es sind eindeutige Identifier und universally in zweierlei Hinsicht: allgemein eindeutig und allgemein verwendbar. Und sie werden auch sehr breit eingesetzt, beispielsweise als Signatur in einem Interface (siehe z.B. Component_Object_Model#COM-Interface). Kurz UUID können nahezu überall gespeichert und für nahezu alles verwendet werden. --jailbird 23:30, 27. Jan. 2007 (CET)Beantworten
Einige Dateisysteme (z.B. ext2) besitzen spezielle Felder im Superblock, in denen eine UUID gespeichert werden kann, welche dann vom Betriebssystem genutzt werden kann, z.B. den USB-Stick zu identifizieren. Dateisystemunabhängig funktioniert das bei Datenträgern, die über eine GUID Partition_Table partitioniert sind. --RokerHRO 23:09, 9. Apr. 2008 (CEST)Beantworten

UUIDs mit Version 6? Bearbeiten

In GUID Partition Table scheint es UUIDs mit Version 6 zu geben, z.B. 21686148-6449-6E6F-744E-656564454649, wie wurden die erzeugt? --RokerHRO (Diskussion) 15:33, 25. Okt. 2012 (CEST)Beantworten

Hallo. Nein, es gibt keine v6. Aus dem Englischen Artikel zu der GUID Partition Table geht hervor, das hier bewusst vom RFC Schema abgewichen wurde: “The formation of this GUID does not follow the GUID definition; it is formed by using the ASCII codes for the string "Hah!IdontNeedEFI". Such formation of "GUID" value breaks down the guaranteed uniqueness of GUID.” --ucc 18:45, 25. Okt. 2012 (CEST)Beantworten
Oje, das ist ja albern. Hätten sie nur Großbuchstaben genommen, wäre es mir gar nicht aufgefallen. :-/ Aber wäre es nicht erwähnenswert in diesem oder im GUID Partition Table-Artikel? Nun ist nur noch die Herkunft der 8DA63339-0007-60C0-C436-083AC8230908 zu klären. Auch mit Leetspeak komm ich da nicht wirklich weiter… --RokerHRO (Diskussion) 17:39, 26. Okt. 2012 (CEST)Beantworten
Ja in GUID Partition Table sollte das erwähnt werden, hier hat es nicht wirklich was zu suchen ;-) --ucc 17:57, 26. Okt. 2012 (CEST)Beantworten

Katastrophaler Artikel Bearbeiten

Zwar werden die technischen Hintergründe zum Teil nachvollziehbar und partiell auch technisch zutreffend erläutert, aber nicht die Gründe, die dahinterstanden, verschiedene UUID-Schamata zu entwickeln. Eine UUID der Version 1 hätte ja nun problemlos kryptographisch sicher anonymisiert werden können, indem man den Ursprungswert einfach gehasht hätte, was den Haupteinwand laut Artikel gegen sie entkräftet hätte.

Die "Generierung aus dem DNS-Eintrag" lässt den Diskussionsbedarf erkennen. (Wie soll ein DNS-Eintrag auch in historischer Hinsicht eineindeutig sein? Wie soll/kann es jeder andere x-beliebige sonstige FQ-Gerätebezeichner sein?)

Die Bemühungen der Folgeversionen galten eher der Konfliktvermeidung (ID-Konflikte), insbesondere in Umgebungen, in denen multiple, völlig identische Computersysteme arbeiten, oder virtuelle Umgebungen, in denen Computersysteme immer und immer wieder stereotyp mit immer gleicher Konfiguration ähnliche Aufgaben erledigen sollen. Auch potenzielle Missbrauchsmöglichkeiten wären zu betrachten.

Wie allerdings die verschiedenen UUID-Versionen diese Aufgabenstellung meistern, und ob sie es wohl erfolgreich tun, das muss der geneigte Leser dann wohl raten.

Kurzfassung: Einordnung, Erklärung abseits der bloßen Funktionsweise und Sinngebung fehlen, die Standarddokumente sind um Dimensionen auskunftsfreudiger. Daneben ist die technische Erläuterung unvollständig oder irreführend. --Ghettobuoy (Diskussion) 04:33, 2. Aug. 2017 (CEST)Beantworten

Na mal ruhig Blut. Der Artikel mag inhaltliche Schwächen aufweisen, ja. Nobody is perfect. Aber "katastrophal" ist er ganz sicher nicht.
Zu deinen Kritikpunkten im Einzelnen:
  1. "kryptographisch anonymisierte zeitstempel-basierte UUID" : Ja, hätte man machen können, hat man aber nicht. Wenn du Quellen findest, die das "Warum" erklären, kann das gerne in den Artikel rein, ansonsten ist das Spekulation und WP:TF.
  2. DNS-Namen wie "de.wikipedia.org" oder "ae-11-vl-3101.edge3.london2.level3.net" sind eindeutige Namen, oder etwa nicht? Daraus lässt sich eine UUID Version 3 oder 5 generieren. Der Artikel beschreibt es an dem Beispielnamen "www.example.org". Was hast du daran nun genau auszusetzen?
  3. Ein-eindeutigkeit von UUIDs, also die umkehrbar eindeutige Zuordnung von einer UUID zu einem Namen oder Entität, ist natürlich nur "sehr wahrscheinlich" und nicht garantiert. So ist es theoretisch möglich, dass es auch einen anderen DNS-Namen gibt, dessen Version-5-UUID zu 74738ff5-5367-5958-9aee-98fffdcd1876 wird. Kollisionen sind bei Hashes nunmal inhärent.
  4. Das Originalquellen oftmals umfangreicher sind als der WP-Artikel, liegt in der Natur der Sache. Wenn dir etwas Wichtiges im Artikel fehlt, kannst du es aber gerne ergänzen, es ist ein Wiki, das lebt vom Mitmachen, nicht vom Motzen.
  5. Welche technischen Erläuterungen sind irreführend?
--RokerHRO (Diskussion) 09:49, 2. Aug. 2017 (CEST)Beantworten
Den Absatz beginnend mit "Mehrere andere Algorithmen zur Generierung wurden entwickelt..." empfinde ich als verbal-unpräzise Form einer verschachtelten Tabelle. Mit den Umschreibungen kann man jedenfalls den jeweiligen Algorithmus weder richtig verstehen, noch nachbauen. --Ghettobuoy (Diskussion) 06:58, 3. Aug. 2017 (CEST)Beantworten
Es ist ein Beispiel im Abschnitt darüber gegeben, wo man Schritt-für-Schritt nachvollziehen kann, wie eine Version-5-UUID aus einem gegebenen DNS-Namen erzeugt wird, incl. dem nochmaligen Verweis auf RFC 4122, wo es weitere Beispiele gibt. Was genügt dir daran nicht? Möchtest du eine komplette Übersetzung des RFCs im Artikel haben oder wie? --RokerHRO (Diskussion) 08:15, 3. Aug. 2017 (CEST)Beantworten

Verwendung Bearbeiten

Die Sektion "Verwendung" wirft meiner Meinung nach ein falsches Licht auf UUIDs: Es hört sich so an als ob UUIDs nur für die Ext-Dateisysteme wichtig seien, und sonst für nix. Die "Verwendung" Sektion sollte eigentlich eine große Liste an Verwendungszwecken zeigen. Ein Eintrag sollte dabei unbedingt die Microsoft COM-GUIDs nennen. Auch könnte man erwähnen, dass viele Datenbanken UUIDs verwenden, damit Daten, die an verschiedenen Standorten erstellt wurden, problemlos zusammengeführt werden können. --Blackdrake (Diskussion) 09:25, 2. Nov. 2019 (CET)Beantworten

Ja, der Abschnitt ist wohl von einem Lunux-Fanboy erstellt worden. Da sollten eigentlich überhaupt keine konkreten Tools oder Betriebssysteme stehen. Stattdessen nur allgemeine Einsatzfelder: Eindeutige Kennzeichnung von Datenträgern, verteilte Datenbanken, RPC-Dienste, etc. -- 84.160.52.103 13:25, 21. Apr. 2022 (CEST)Beantworten
Bin gerade über denselben (sorry) Nonsense gestossen. Das sollte gelöscht werden, weil es überhaupt nicht stimmt. -45.142.56.36 10:19, 26. Apr. 2022 (CEST)Beantworten
Hab das jetzt rausgenommen --cljk (Diskussion) 10:20, 26. Apr. 2022 (CEST)Beantworten

Wieso ist Version 1 kollisionsfrei? Bearbeiten

Werden auf einem Rechner 2 UUID von unabhängigen Programmen im gleichen 100ns-Zeitraum erzeugt, dann sind beide UUID identisch. Daher ist der Satz "Bei Version 1 und 2 kann eine Kollision nur entstehen, wenn von der Standardimplementation abgewichen wird, entweder absichtlich oder unabsichtlich." nicht korrekt. -- Lemmi18 (Diskussion) 10:12, 14. Jul. 2021 (CEST)Beantworten

AFAIK verlangt der Originalalgorithmus, dass du eben einfach 100ns warten sollst, bevor du die UUID ausgibst. Und wenn die UUIDs vom Kernel erzeugt werden, kann man das systemweit garantieren. Wenn es in Userspace-Programmen geschieht, natürlich nicht. --RokerHRO (Diskussion) 22:30, 14. Jul. 2021 (CEST)Beantworten
Aber auch das macht es nicht eindeutig (nur unwahrscheinlicher), da 2 Rechner mit zufälliger Node-ID auch dieselbe UUID erzeugen können. -- Lemmi18 (Diskussion) 01:18, 7. Sep. 2021 (CEST)Beantworten