# module SecureRandom

### Public Class Methods

uuid() click to toggle source

::uuid generates a v4 random UUID (Universally Unique IDentifier).

    p SecureRandom.uuid #=> "2d931510-d99f-494a-8c67-87feb05e1594"
    p SecureRandom.uuid #=> "bad85eb9-0713-4da7-8d36-07a8e4b00eab"
    p SecureRandom.uuid #=> "62936e70-1815-439b-bf89-8492855a7e6b"

The version 4 UUID is purely random (except the version). It doesn’t contain meaningful information such as MAC address, time, etc.

See RFC 4122 for details of UUID.

    # File lib/chef/monkey_patches/securerandom.rb, line 37
    def self.uuid
      ary = self.random_bytes(16).unpack("NnnnnN")
      ary[2] = (ary[2] & 0x0fff) | 0x4000
      ary[3] = (ary[3] & 0x3fff) | 0x8000
      "%08x-%04x-%04x-%04x-%04x%08x" % ary
    end