Komfortabler Dateimanager mit vielen Funktionen

GUIDs auf die Schnelle

By Sven on 05.04.2005 - 08:26 in Entwicklung

Ab und zu kommt man mal in die Verlegenheit und braucht schnell eine GUID. Für diese Fälle hat Uwe Keim eine neue Website zur Generierung von GUIDs programmiert.

Wenig bekannt ist aber leider, dass Microsoft mit Windows 2000 eine kleine Änderung bei der Generierung einer GUID durch die Funktion UuidCreate vorgenommen hat. Bis Windows 2000 war eine mit UuidCreate erstellte GUID garantiert immer eindeutig in Raum und Zeit, sofern der Rechner, auf dem sie erstellt wurde, eine Netzwerkkarte besaß. Da man durch die in der GUID enthaltene MAC-Adresse aber Rückschlüsse auf die Netzwerkkennungen in einer Firma schließen kann, hat Microsoft diese Funktion aus Sicherheitsgründen geändert. Der große Nachteil ist nun, dass die generierten GUIDs nicht mehr zwingend eindeutig sind.

Ab Windows 2000 muss man zur Generierung einer globalen eindeutigen GUID daher die Funktion UuidCreateSequential verwenden, andernfalls kann lediglich garantiert werden, dass die GUID nur auf dem Rechner eindeutig ist, auf dem sie erstellt wurde. Gerade für COM-Komponenten ist es aber wichtig, dass die verwendeten GUIDs auch wirklich einzigartig sind. Im schlechtesten Fall kann es sonst passieren, dass zwei verschiedene Komponenten von verschiedenen Entwicklern zufällig eine gleiche GUID benutzen und sich so ziemlich in die Quere kommen.

Dass die bei Uwe generierten GUIDs nicht global eindeutig sind, erkennt man am letzten Block. Dieser stellt die MAC-Adresse dar, global eindeutige GUIDs von einem Rechner haben hier immer den gleichen Wert.

Bei Uwe erzeugte GUIDs:

  • 1ab9096f-2101-4d6a-9a77-4b0be04d6b0a
  • 2e27197f-4c53-45f1-8f83-0f9f89456962
  • cc09efd4-967c-4eb1-8c4b-3023d9c85c1c
  • e0297aad-cee3-4005-a4db-172af5fa8295
  • ea0bc131-97fd-4c15-8007-2d79995c39e2

Mit uuidgen.exe erzeugte global eindeutige GUIDs (uuidgen.exe -x -n5):

  • f225f880-a5a2-11d9-8512-000c6e33eb97
  • f225f881-a5a2-11d9-8512-000c6e33eb97
  • f225f882-a5a2-11d9-8512-000c6e33eb97
  • f225f883-a5a2-11d9-8512-000c6e33eb97
  • f225f884-a5a2-11d9-8512-000c6e33eb97

So wie ich Uwe kenne, wird er seine Seite aber ziemlich bald aktualisieren, so dass man bei Bedarf auch global eindeutige GUIDs erhält. 🙂

Es gibt einen Kommentar zu diesem Beitrag

Trackback URL | RSS-Feed für Kommentare

Top