Provided by: util-linux-locales_2.39.3-9ubuntu6_all bug

BEZEICHNUNG

       uuid_generate, uuid_generate_random, uuid_generate_time, uuid_generate_time_safe - einen
       eindeutigen UUID-Wert erzeugen

ÜBERSICHT

       #include <uuid.h>

       void uuid_generate(uuid_t Ausgabe);
       void uuid_generate_random(uuid_t Ausgabe);
       void uuid_generate_time(uuid_t Ausgabe);
       int uuid_generate_time_safe(uuid_t Ausgabe);
       void uuid_generate_md5(uuid_t Ausgabe, const uuid_t ns, const char *Name, size_t Länge);
       void uuid_generate_sha1(uuid_t Ausgabe, const uuid_t ns, const char *Name, size_t Länge);

BESCHREIBUNG

       Die Funktion uuid_generate() erzeugt einen neuen universellen eindeutigen Bezeichner
       (UUID). Diese UUID wird basierend auf qualitativ hochwertiger Zufälligkeit aus
       getrandom(2), /dev/urandom oder /dev/random erzeugt, soweit verfügbar. Falls dies nicht
       verfügbar ist, dann verwendet uuid_generate() einen alternativen Algorithmus, der die
       aktuelle Zeit, die lokale Ethernet-MAC-Adresse (falls verfügbar) und mit einem
       Pseudo-Zufallsgenerator erzeugte Zufallsdaten verwendet.

       Die Funktion uuid_generate_random() erzwingt die Verwendung des vollständig
       zufallsbasierten UUID-Formats, selbst wenn kein qualitativ hochwertiger
       Zufallszahlengenerator (zum Beispiel /dev/urandom zur Verfügung steht. In letzterem Fall
       wird stattdessen ein Pseudo-Zufallsgenerator verwendet. Beachten Sie, dass ein solcher
       Pseudo-Zufallsgenerator die Eindeutigkeit der auf diese Weise erzeugten UUIDs
       kompromittieren kann.

       Die Funktion uuid_generate_time() erzwingt die Nutzung des alternativen Algorithmus,
       welcher die aktuelle Zeit und die lokale Ethernet-MAC-Adresse verwendet (sofern
       verfügbar). Dieser Algorithmus war früher der Standard zur Erzeugung von UUIDs, aber
       aufgrund der Einbeziehung der Ethernet-MAC-Adresse könnten Informationen darüber nach
       außen gelangen, wann und wo die UUID erzeugt wurde. Dies kann in einigen Anwendungen zu
       Datenschutzproblemen führen, daher verwendet die Funktion uuid_generate() nur dann diesen
       Algorithmus, wenn keine qualitativ hochwertige Zufälligkeitsquelle zur Verfügung steht. Um
       die Eindeutigkeit der UUIDs gleichzeitig laufender Prozesse zu gewährleisten, verwendet
       die UUID-Bibliothek einen globalen Uhrstatuszähler (sofern der Prozess über die nötigen
       Rechte verfügt, exklusiv auf diese Datei zugreifen zu können) und/oder den Daemon
       uuidd(8), falls dieser bereits läuft oder vom Prozess aufgerufen werden kann (sofern
       dieser installiert ist und der Prozess über die nötigen Rechte verfügt, ihn auszuführen).
       Sollte keiner der beiden Synchronisationsmechanismen verwendbar sein, wäre es theoretisch
       möglich, dass zwei gleichzeitig laufende Prozesse die gleiche UUID ermitteln. Um
       herauszufinden, ob die UUID auf sichere Art erzeugt wurde, verwenden Sie
       uuid_generate_time_safe().

       Die Funktion uuid_generate_time_safe() ähnelt uuid_generate_time(), mit dem Unterschied,
       dass sie einen Wert zurückgibt, der anzeigt, ob einer der Synchronisationsmechanismen
       (siehe oben) verwendet wurde.

       Die UUID ist 16 Byte (128 Bit) lang, was etwa 3,4x10^38 eindeutige Werte ergibt (nach Carl
       Sagans Cosmos gibt es im Universum etwa 10^80 Elementarteilchen). Diese neue UUID kann
       unter allen auf dem lokalen System erstellten UUIDs und auch unter allen auf anderen
       Systemen in der Vergangenheit oder Zukunft erstellten UUIDs als hinreichend eindeutig
       betrachtet werden.

       Die Funktionen uuid_generate_md5() und uuid_generate_sha1() erzeugen eine mit MD5 und SHA1
       gehashte (vorhersagbare) UUID, basierend auf einer wohlbekannten UUID, welche den
       Namensraum und eine willkürliche Binärzeichenkette bereitstellt. Die UUIDs sind zu den
       Versionen 3 und 5 von RFC-4122 <https://tools.ietf.org/html/rfc4122> konform.

RÜCKGABEWERT

       Die neu erzeugte UUID wird an dem Speicherort zurückgegeben, auf den die Ausgabe zeigt.
       uuid_generate_time_safe() gibt 0 zurück, wenn die UUID auf sichere Art erzeugt werden
       konnte, anderenfalls -1.

KONFORM ZU

       Diese Bibliothek erzeugt UUIDs, die zu OSF DCE 1.1 kompatible sind, und Hash-basierte
       UUIDs V3 und V5, die zu RFC-4122 <https://tools.ietf.org/html/rfc4122> kompatibel sind.

AUTOREN

       Theodore Y. Ts’o

SIEHE AUCH

       uuidgen(1), uuid(3), uuid_clear(3), uuid_compare(3), uuid_copy(3), uuid_is_null(3),
       uuid_parse(3), uuid_time(3), uuid_unparse(3), uuidd(8)

FEHLER MELDEN

       Nutzen Sie zum Melden von Fehlern das Fehlererfassungssystem auf
       https://github.com/util-linux/util-linux/issues.

VERFÜGBARKEIT

       Die Bibliothek libuuid ist seit Version 2.15.1 Teil des Pakets util-linux, welches aus dem
       Linux-Kernel-Archiv <https://www.kernel.org/pub/linux/utils/util-linux/> heruntergeladen
       werden kann.