UUID Generator
UUID Generator is an online tool that automatically generates UUID (Universally Unique Identifier) v4. You can customize uppercase/lowercase settings and hyphen inclusion options.
✨ Generated UUID
Generates UUID (Universally Unique Identifier) v4. Each UUID is statistically unique and used for database keys, session IDs, etc.
💡 Examples
550e8400-e29b-41d4-a716-446655440000550E8400-E29B-41D4-A716-446655440000550e8400e29b41d4a716446655440000Features
- UUID v4 Generation: Uses cryptographic randomness to generate statistically unique IDs
- Multiple Generation: Generate multiple UUIDs at once (1-10)
- Uppercase/Lowercase: Choose between uppercase and lowercase formats
- Hyphen Options: Generate with or without hyphens
- One-Click Copy: Click to copy UUID to clipboard
What is UUID?
UUID (Universally Unique Identifier) is a 128-bit unique identifier used in software systems. UUID v4 uses random numbers to generate identifiers, ensuring statistical uniqueness.
UUID Format
Standard UUID format is represented as 32 hexadecimal characters separated by hyphens in 8-4-4-4-12 format:
550e8400-e29b-41d4-a716-446655440000
Each section consists of:
- 1st section (8 characters): Time-based low
- 2nd section (4 characters): Time-based mid
- 3rd section (4 characters): Version and time-based high
- 4th section (4 characters): Clock sequence
- 5th section (12 characters): Node (typically MAC address)
For UUID v4, most fields are randomly generated, with the version field fixed at '4'.
Use Cases
1. Database Primary Keys
CREATE TABLE users (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
username VARCHAR(50),
email VARCHAR(100)
);
2. Session IDs
const sessionId = crypto.randomUUID();
localStorage.setItem('sessionId', sessionId);
3. File Names
const uploadFile = (file) => {
const uuid = crypto.randomUUID();
const extension = file.name.split('.').pop();
const fileName = `${uuid}.${extension}`;
// Upload file...
};
4. Distributed System IDs
import uuid
def create_transaction():
transaction_id = str(uuid.uuid4())
return {
'id': transaction_id,
'timestamp': datetime.now(),
'status': 'pending'
}
Programming Examples
JavaScript
// Browser environment - Web Crypto API
const uuid = crypto.randomUUID();
console.log(uuid); // 550e8400-e29b-41d4-a716-446655440000
// Without hyphens
const uuidNoHyphens = crypto.randomUUID().replace(/-/g, '');
console.log(uuidNoHyphens); // 550e8400e29b41d4a716446655440000
// Uppercase
const uuidUpper = crypto.randomUUID().toUpperCase();
console.log(uuidUpper); // 550E8400-E29B-41D4-A716-446655440000
Python
import uuid
# Generate UUID v4
generated_uuid = uuid.uuid4()
print(generated_uuid) # 550e8400-e29b-41d4-a716-446655440000
# Convert to string
uuid_str = str(generated_uuid)
# Without hyphens
uuid_no_hyphens = uuid_str.replace('-', '')
print(uuid_no_hyphens) # 550e8400e29b41d4a716446655440000
# Uppercase
uuid_upper = uuid_str.upper()
print(uuid_upper) # 550E8400-E29B-41D4-A716-446655440000
PHP
// Using ramsey/uuid library
use Ramsey\Uuid\Uuid;
$uuid = Uuid::uuid4();
echo $uuid->toString(); // 550e8400-e29b-41d4-a716-446655440000
// Without hyphens
echo str_replace('-', '', $uuid->toString());
// Uppercase
echo strtoupper($uuid->toString());
Java
import java.util.UUID;
public class UuidExample {
public static void main(String[] args) {
// Generate UUID
UUID uuid = UUID.randomUUID();
System.out.println(uuid.toString());
// Without hyphens
String uuidNoHyphens = uuid.toString().replace("-", "");
System.out.println(uuidNoHyphens);
// Uppercase
String uuidUpper = uuid.toString().toUpperCase();
System.out.println(uuidUpper);
}
}
C#
using System;
class Program
{
static void Main()
{
// Generate UUID
Guid uuid = Guid.NewGuid();
Console.WriteLine(uuid.ToString());
// Without hyphens
string uuidNoHyphens = uuid.ToString("N");
Console.WriteLine(uuidNoHyphens);
// Uppercase
string uuidUpper = uuid.ToString().ToUpper();
Console.WriteLine(uuidUpper);
}
}
Security and Best Practices
Do's
- Database Primary Keys: UUIDs are excellent for distributed databases that need independent key generation
- Public IDs: Safe to expose externally as they're not sequential
- API Keys: Useful as part of API key generation
- Temporary File Names: Ideal for preventing file name collisions
Don'ts
- NOT for Cryptographic Keys: UUIDs are not secure enough for encryption keys
- NOT for Password Storage: Never use UUIDs to replace proper password hashing
- Sequential Requirements: UUIDs are random, so don't use when sorting order is required
- Space-Constrained Scenarios: 128-bit UUIDs may be inefficient compared to shorter IDs
Collision Probability
UUID v4 uses 122 bits of randomness (128 bits total, with 6 bits used for version and variant).
- Number of possible UUIDs: 2^122 ≈ 5.3 × 10^36
- Probability of collision: Practically zero
- Generating 1 billion UUIDs per second for 85 years: less than 50% collision probability
Browser Compatibility
The crypto.randomUUID() API used by this tool is supported in:
- Chrome 92+
- Firefox 95+
- Safari 15.4+
- Edge 92+
For older browsers, polyfills or libraries like uuid are recommended.
FAQ
Q1. What's the difference between UUID versions?
A: There are multiple UUID versions:
- Version 1: Time-based (includes MAC address)
- Version 3: MD5 hash-based
- Version 4: Random (most commonly used)
- Version 5: SHA-1 hash-based
Version 4 is most commonly used due to its simplicity and randomness.
Q2. Are UUIDs truly unique?
A: Statistically speaking, yes. With 122 bits of randomness, the probability of collision is negligible. However, mathematical absolute uniqueness is not guaranteed.
Q3. Can I use UUIDs as database primary keys?
A: Yes, but consider:
- Pros: Globally unique, can be generated client-side, safe for distributed systems
- Cons: Larger storage space (16 bytes vs 4-8 bytes for integers), no sequential ordering, slightly slower indexing
Q4. Are UUIDs secure?
A: UUIDs are not cryptographically secure keys. While they are unpredictable, they should not replace proper encryption keys or authentication tokens.
Q5. What's the difference between hyphens and no hyphens?
A: It's purely a formatting difference:
- With hyphens:
550e8400-e29b-41d4-a716-446655440000(36 characters, standard format) - Without hyphens:
550e8400e29b41d4a716446655440000(32 characters, compact format)
Choose based on your system requirements.
Q6. Why use UUIDs instead of auto-increment IDs?
A: Benefits of UUIDs:
- Distributed generation: Multiple servers can generate IDs independently without conflicts
- Security: Non-sequential, harder to guess next ID
- Offline generation: Can be generated without database connection
- Merging data: Easy to merge data from multiple sources without ID conflicts
Auto-increment IDs are better for:
- Performance: Faster indexing and smaller storage
- Simplicity: Easier to debug and read
- Ordering: Natural chronological ordering
Related Tools
- Timestamp Converter: Convert Unix timestamps to dates
- Hash Generator: Generate MD5, SHA-256 hashes
- JSON Formatter: Validate and format JSON data