Skip to content

Generate UUID in C# ​

The simplest way to generate a UUID in C# is to use the built-in System.Guid class and call its static method NewGuid(). This produces a valid version 4 UUID.

csharp
using System;

class Program
{
    static void Main()
    {
        Guid uuid = Guid.NewGuid();
        Console.WriteLine($"Generated UUID: {uuid}");
    }
}

If you need to generate a specific UUID version, you can use a third-party library such as UuidCreator which offers more flexible options:

csharp
using UuidCreator;

// Generate UUID version 1 - time based
var uuid1 = TimeBasedUuidCreator.GetTimeBasedUuid();

// Generate UUID version 3 - deterministic and hashed with MD5
var uuid3 = NameBasedUuidCreator.GetNameBasedUuid(NameBasedUuidCreator.NAMESPACE_URL, "https://example.com");

// Generate UUID version 4 - random
var uuid4 = RandomBasedUuidCreator.GetRandomBasedUuid();

// Generate UUID version 5 - deterministic and hashed with SHA-1
var uuid5 = NameBasedUuidCreator.GetNameBasedUuid5(NameBasedUuidCreator.NAMESPACE_URL, "https://example.com");

// Generate UUID version 6 - time-ordered
var uuid6 = TimeOrderedUuidCreator.GetTimeOrderedUuid();

// Generate UUID version 7 - time-ordered with random
var uuid7 = TimeOrderedUuidCreator.GetTimeOrderedEpochUuid();

Installation & Setup ​

NuGet Package Manager:

bash
Install-Package UuidCreator

Package Manager Console:

bash
dotnet add package UuidCreator

.NET Core vs .NET Framework ​

Both .NET Core and .NET Framework support System.Guid.NewGuid() for UUID v4 generation. For other versions, use the UuidCreator library which supports:

  • .NET Standard 2.0+
  • .NET Core 2.0+
  • .NET Framework 4.6.1+

UUID Version Comparison ​

Choose the right version for your C# application:

  • Version 1 - Time-based, includes MAC address
  • Version 3 - MD5 namespace-based, deterministic
  • Version 4 - Random, most popular choice
  • Version 5 - SHA-1 namespace-based, more secure than v3
  • Version 6 - Time-ordered, better than v1 for databases
  • Version 7 - Modern time-based with improved sorting

For C# applications:

  • ASP.NET Core APIs: Use Version 4 for entity identifiers
  • Entity Framework: Consider Version 7 for better database performance
  • Microservices: Use Version 6 for distributed system ordering

How do I generate UUID in other languages? ​

Microsoft ecosystem:

Cross-platform development:

  • JavaScript - crypto.randomUUID() & uuid library
  • Python - Built-in uuid module
  • Java - java.util.UUID & UuidCreator
  • Go - google/uuid package
  • Rust - uuid crate

← Back to Online UUID Generator