randomUUID

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

This function is not supported at compile time.

  1. UUID randomUUID()
  2. UUID randomUUID(RNG randomGen)
    randomUUID
    (
    RNG
    )
    (
    ref RNG randomGen
    )

Parameters

randomGen RNG

uniform RNG

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 std.random.unpredictableSeed for details.

Examples

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);

See Also

Meta