Skip to content

UUID Generator — C# source

Generate RFC 4122 v4 UUIDs with crypto-grade randomness. Bulk generate, copy all, toggle format (uppercase / no hyphens).

This is the C# implementation — the same logic the interactive tool runs, in a shareable, citable form.

// RFC 4122 v4 UUID generator (cryptographically secure).
//
// Language: C# (.NET 8)
// CosmoDev polyglot showcase port of the `uuid` tool.
// Ported from src/lib/uuid.ts — display source, part of CosmoDev's
// polyglot tool pages.
//
// Produces a random (v4) UUID: 36 characters, lowercase, hyphenated as
// 8-4-4-4-12 hex digits, with the RFC version (4) and variant (10xx)
// bits set. RandomNumberGenerator is .NET's bridge to the host CSPRNG,
// so output is unpredictable and collision-safe.

using System.Security.Cryptography;

static string UuidV4()
{
    byte[] b = RandomNumberGenerator.GetBytes(16);

    b[6] = (byte)((b[6] & 0x0f) | 0x40); // version 4: high nibble of byte 6
    b[8] = (byte)((b[8] & 0x3f) | 0x80); // variant  : high bits of byte 8

    // ToHexString is uppercase; lowercase it, then insert the
    // canonical 8-4-4-4-12 hyphens.
    string hexed = Convert.ToHexString(b).ToLowerInvariant();
    return string.Join('-',
        hexed[..8], hexed.Substring(8, 4), hexed.Substring(12, 4),
        hexed.Substring(16, 4), hexed[20..]);
}

Console.WriteLine(UuidV4());

Also available in 13 other languages

Every CosmoDev tool ships its pure logic in TypeScript (web) and Go (CLI), with authored implementations in a dozen-plus languages — the same contract, ported. Compare all languages side by side →