# salt.modules.mod_random

## Provides access to randomness generators.

Added in version 2014.7.0.

salt.modules.mod_random.get_str(length=20, chars=None, lowercase=True, uppercase=True, digits=True, punctuation=True, whitespace=False, printable=False)

  Added in version 2014.7.0.

  Changed in version 3004: Changed the default character set used to include symbols and implemented arguments to control the used character set.

  Returns a random string of the specified length.

  length20

    Any valid number of bytes.

  charsNone

    Added in version 3004.

    String with any character that should be used to generate random string.

    This argument supersedes all other character controlling arguments.

  lowercaseTrue

    Added in version 3004.

    Use lowercase letters in generated random string. (see `string.ascii_lowercase`)

    This argument is superseded by chars.

  uppercaseTrue

    Added in version 3004.

    Use uppercase letters in generated random string. (see `string.ascii_uppercase`)

    This argument is superseded by chars.

  digitsTrue

    Added in version 3004.

    Use digits in generated random string. (see `string.digits`)

    This argument is superseded by chars.

  printableFalse

    Added in version 3004.

    Use printable characters in generated random string and includes lowercase, uppercase, digits, punctuation and whitespace. (see `string.printable`)

    It is disabled by default as includes whitespace characters which some systems do not handle well in passwords. This argument also supersedes all other classes because it includes them.

    This argument is superseded by chars.

  punctuationTrue

    Added in version 3004.

    Use punctuation characters in generated random string. (see `string.punctuation`)

    This argument is superseded by chars.

  whitespaceFalse

    Added in version 3004.

    Use whitespace characters in generated random string. (see `string.whitespace`)

    It is disabled by default as some systems do not handle whitespace characters in passwords well.

    This argument is superseded by chars.

  CLI Example:

      salt '*' random.get_str 128
      salt '*' random.get_str 128 chars='abc123.!()'
      salt '*' random.get_str 128 lowercase=False whitespace=True

salt.modules.mod_random.hash(value, algorithm='sha512')

  Added in version 2014.7.0.

  Encodes a value with the specified encoder.

  value

    The value to be hashed.

  algorithmsha512

    The algorithm to use. May be any valid algorithm supported by hashlib.

  CLI Example:

      salt '*' random.hash 'I am a string' md5

salt.modules.mod_random.rand_int(start=1, end=10, seed=None)

  Returns a random integer number between the start and end number.

  Added in version 2015.5.3.

  start1

    Any valid integer number

  end10

    Any valid integer number

  seed :

    Optional hashable object

  Changed in version 2019.2.0: Added seed argument. Will return the same result when run with the same seed.

  CLI Example:

      salt '*' random.rand_int 1 10

salt.modules.mod_random.sample(value, size, seed=None)

  Return a given sample size from a list. By default, the random number generator uses the current system time unless given a seed value.

  Added in version 3005.

  value

    A list to e used as input.

  size

    The sample size to return.

  seed

    Any value which will be hashed as a seed for random.

  CLI Example:

      salt '*' random.sample '["one", "two"]' 1 seed="something"

salt.modules.mod_random.seed(range=10, hash=None)

  Returns a random number within a range. Optional hash argument can be any hashable object. If hash is omitted or None, the id of the minion is used.

  Added in version 2015.8.0.

  hash: None

    Any hashable object.

  range: 10

    Any valid integer number

  CLI Example:

      salt '*' random.seed 10 hash=None

salt.modules.mod_random.shadow_hash(crypt_salt=None, password=None, algorithm='sha512')

  Generates a salted hash suitable for /etc/shadow.

  crypt_saltNone

    Salt to be used in the generation of the hash. If one is not provided, a random salt will be generated.

  passwordNone

    Value to be salted and hashed. If one is not provided, a random password will be generated.

  algorithmsha512

    Hash algorithm to use.

  CLI Example:

      salt '*' random.shadow_hash 'My5alT' 'MyP@asswd' md5

salt.modules.mod_random.shuffle(value, seed=None)

  Return a shuffled copy of an input list. By default, the random number generator uses the current system time unless given a seed value.

  Added in version 3005.

  value

    A list to be used as input.

  seed

    Any value which will be hashed as a seed for random.

  CLI Example:

      salt '*' random.shuffle '["one", "two"]' seed="something"

salt.modules.mod_random.str_encode(value, encoder='base64')

  Added in version 2014.7.0.

  value

    The value to be encoded.

  encoderbase64

    The encoder to use on the subsequent string.

  CLI Example:

      salt '*' random.str_encode 'I am a new string' base64