View source code
Display the source code in std/uuid.d from which thispage was generated on github.
Report a bug
If you spot a problem with this page, click here to create aBugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page.Requires a signed-in GitHub account. This works well for small changes.If you'd like to make larger changes you may want to consider usinglocal clone.

Function std.uuid.randomUUID

This function generates a random number based UUID from a random number generator.

UUID randomUUID() nothrow @nogc @safe;

UUID randomUUID(RNG)(
  ref RNG randomGen
)
if (isInputRange!RNG && isIntegral!(ElementType!RNG));

This function is not supported at compile time.

Bugs

Issue #9881 - Randomness in UUID generation is insufficient

Warning

This function must not be used for cryptographic purposes. UUIDs generated by this function do not have sufficient randomness for all use cases. This especially applies to the overload that accepts a caller-provided RNG. At the moment, Phobos does not provide a cryptographically-secure pseudo-random number generator (CSPRNG) that could be supplied to this function.

While the function overload with no parameters will attempt to use the system CSPRNG where available and implemented, there are no guarantees. See unpredictableSeed for details.

Parameters

NameDescription
randomGen uniform RNG

See Also

isUniformRNG

Example

import std.random : Xorshift192, unpredictableSeed;

//simple call
auto uuid = randomUUID();

//provide a custom RNG. Must be seeded manually.
Xorshift192 gen;

gen.seed(unpredictableSeed);
auto uuid3 = randomUUID(gen);

Authors

Johannes Pfau

License

Boost License 1.0.