GUID Generator is a simple program that generates any number of GUID identifiers.
The program is available in two versions: as windows GUI application (GuidGenW.exe) and console application (GuidGen.exe) that runs from the command line.
Both applications are standalone executables and do not require installation of any additional runtime libraries, frameworks, etc.
Both programs are completely portable, they do not use the registry and do not change any system settings.
GUID - Globally Unique Identifier - is a 16 byte (128-bit) value usually presented as a sequence of hexadecimal numbers, divided by hyphens into five groups:
Group No | Bytes | Bits |
---|---|---|
1 | 4 | 32 |
2 | 2 | 16 |
3 | 2 | 16 |
4 | 2 | 16 |
5 | 6 | 48 |
Example: 79237765-A862-405A-BA02-1F17BD783624
GUID is a 128-bit value, so there are 2128 (340 282 366 920 938 463 463 374 607 431 768 211 456) possible combinations.
The possibility of generate two identical GUIDs is so small that they are commonly used as identifiers of the various resources: operating system objects, unique keys in database tables, disk partitions and many more.
If you need a very strong password, GUID is a good candidate.
typedef struct _GUID { DWORD Data1; WORD Data2; WORD Data3; BYTE Data4[8]; } GUID;
TGUID = record D1: Cardinal; D2: Word; D3: Word; D4: array[0..7] of Byte; end;
TGuid = packed record case integer of 1 : ( Data1 : DWord; Data2 : word; Data3 : word; Data4 : array[0..7] of byte; ); 2 : ( D1 : DWord; D2 : word; D3 : word; D4 : array[0..7] of byte; ); 3 : ( { uuid fields according to RFC4122 } time_low : dword; // The low field of the timestamp time_mid : word; // The middle field of the timestamp time_hi_and_version : word; // The high field of the timestamp multiplexed with the version number clock_seq_hi_and_reserved : byte; // The high field of the clock sequence multiplexed with the variant clock_seq_low : byte; // The low field of the clock sequence node : array[0..5] of byte; // The spatially unique node identifier ); end;
Private Type GUID PartOne As Long PartTwo As Integer PartThree As Integer PartFour(7) As Byte End Type
class GUID(Structure): _fields_ = [("Data1", DWORD), ("Data2", WORD), ("Data3", WORD), ("Data4", BYTE * 8)]
The first two bytes of the Data4
member (D4
field) form the fourth group.