2017-10-14 1 views
-1

Ich bin auf der Suche nach einem Dienstprogramm, um eine echte zufällige global eindeutige Kennung (GUID) zu generieren, um die generierte GUID im Quellcode zu kopieren und einzufügen.Gibt es einen portablen Weg, um eine echte zufällige global eindeutige Kennung (GUID) zu generieren?

Es gibt viele Dienstprogramme, die auf einigen integrierten GUID-Generatoren basieren. Diese Generatoren können Netzwerkkarten-MAC-Adressen, den Systemtakt, Pseudozufallssequenzen und mehr enthalten.

Der Generator muss jedoch wirklich zufällig sein. Dies ist aufgrund meiner festen Überzeugung, dass jeder Versuch, die Wahrscheinlichkeit von Guid-Kollisionen zu reduzieren, diese Wahrscheinlichkeit tatsächlich erhöhen wird.

Antwort

0

Ich hatte gehofft, einen Ansatz zu finden, der etwas wie weißes Rauschen Sampling in der CPU eingebaut verwendet.

Ich fand keine portable Lösung Ich endete mit der Abfrage random.org, im Vertrauen darauf, dass sie einen guten Job machen.

Ein Windows commandline utility ist eingeschlossen, das random.org über HTTP abfragt, eine echte zufällige GUID zusammenstellt und die GUID in die Zwischenablage kopiert.

getguid 
Guid d9cc9db3-dd4a-b05a-44ac-679b7dbefcf0 copied to the clipboard. 
Quota remaining at random.org: 999872 bits. 
Press enter. 

Ihre kostenlose Quote bei random.org wird 1000000 Bits pro Tag sein; konsumieren 128 bit pro angeforderte quid.

Die Zip enthält die ausführbare Datei und den Quellcode für die Verwendung in Visual Studio 2015 oder 2017.

Beachten Sie, dass das Dienstprogramm für alle 128 Bits der guid echten Zufall Bits erzeugt. Dies ist eine Verletzung des Standards. Zum Beispiel beschreibt this wiki article, dass die GUID einige Bits ausgeben sollte, um den GUID-Typ anzugeben. Das Dienstprogramm zieht es jedoch vor, völlig zufällig zu sein, um den Bereich der Leitfäden zu maximieren und hoffentlich die Wahrscheinlichkeit von Kollisionen zu minimieren.

Verwandte Themen