# Giải mã và kiểm tra UUID

> Giải mã UUID trực tuyến. Tìm phiên bản, trích xuất dấu thời gian (v1, v7) và kiểm tra tính hợp lệ của định dạng. Hỗ trợ UUID v1, v3, v4, v5, v6 và v7.

URL: https://acrafto.com/vi/giai-ma-xac-thuc-uuid/

Tools are interactive browser apps; there is no public API, no endpoints to call and no server-side processing. To use a tool, open its HTML page in a browser.

Nhập UUID của bạn vào trường trên và công cụ này (Trình phân tích UUID) sẽ ngay lập tức thực hiện kiểm tra trực tuyến, xác định phiên bản, tính hợp lệ và trích xuất thông tin ẩn.

## Bộ giải mã UUID là gì?

Bộ giải mã UUID là một công cụ phân tích UUID (Định danh duy nhất toàn cầu) và trích xuất tất cả thông tin có sẵn từ đó. UUID không chỉ là một chuỗi ký tự ngẫu nhiên – tùy thuộc vào phiên bản, nó có thể chứa dấu thời gian, thông tin hệ thống hoặc hàm băm của dữ liệu xác định.

## Bạn có thể nhận được thông tin gì từ UUID?

### Thông tin cơ bản về UUID

**Phiên bản UUID:**

- Xác định loại và cấu trúc của UUID (v1, v3, v4, v5, v6, v7)
- Được trích xuất từ ký tự thập lục phân thứ 13

**Biến thể:**

- `RFC 4122` - Biến thể UUID tiêu chuẩn
- `NCS` - Hệ thống điện toán mạng (lỗi thời)
- `Microsoft` - Biến thể Microsoft GUID
- `Reserved` - Dành riêng cho sử dụng trong tương lai

### UUID v1 - Dấu thời gian + Địa chỉ MAC

**Bạn có thể nhận được gì:**

- ✅ **Thời gian tạo chính xác** - ngày và giờ với độ chính xác 100 nano giây
- ✅ **Chuỗi đồng hồ** - số thứ tự để ngăn ngừa xung đột
- ✅ **ID nút** - ban đầu là địa chỉ MAC, thường là các giá trị ngẫu nhiên

**Ví dụ:**

```
UUID: 6ba7b810-9dad-11d1-80b4-00c04fd430c8

Phiên bản: v1 (Dấu thời gian + MAC)
Biến thể: RFC 4122
Ngày và giờ: 15.10.1997 04:25:33.000
Chuỗi đồng hồ: 724
ID nút: 00:C0:4F:D4:30:C8
```

**Sử dụng:**

- Xác định thời điểm tạo bản ghi
- Kiểm toán và phân tích pháp y
- Gỡ lỗi các vấn đề phụ thuộc thời gian

### UUID v3/v5 - Dựa trên Hash

**Bạn có thể nhận được gì:**

- ✅ **Loại hash** - MD5 (v3) hoặc SHA-1 (v5)
- ❌ **Không thể lấy** - không gian tên và tên gốc (hash một chiều)

**Ví dụ:**

```
UUID: 886313e1-3b8a-5372-9b90-0c9aee199e5d

Phiên bản: v5 (hash SHA-1)
Biến thể: RFC 4122
Loại: UUID dựa trên Hash (xác định)
Lưu ý: Không thể khôi phục không gian tên và tên gốc từ UUID
```

**Sử dụng:**

- Xác minh UUID là xác định
- Xác định loại UUID trong cơ sở dữ liệu
- Kiểm tra tính nhất quán của các định danh dựa trên hash

### UUID v4 - Ngẫu nhiên

**Bạn có thể nhận được gì:**

- ✅ **Phiên bản** - xác nhận là ngẫu nhiên
- ✅ **Biến thể** - tiêu chuẩn RFC 4122
- ❌ **Không có dữ liệu bổ sung** - các bit hoàn toàn ngẫu nhiên

**Ví dụ:**

```
UUID: f47ac10b-58cc-4372-a567-0e02b2c3d479

Phiên bản: v4 (Ngẫu nhiên)
Biến thể: RFC 4122
Loại: UUID được tạo ngẫu nhiên
```

**Sử dụng:**

- Xác minh UUID là ngẫu nhiên (không xác định)
- Kiểm tra định dạng UUID chính xác
- Xác thực UUID trước khi lưu vào cơ sở dữ liệu

### UUID v6 - Dấu thời gian được sắp xếp

**Bạn có thể nhận được gì:**

- ✅ **Thời gian tạo chính xác** - được sắp xếp lại để có hiệu suất DB tốt hơn
- ✅ **Chuỗi đồng hồ** - số thứ tự
- ✅ **ID nút** - định danh nút

**Ví dụ:**

```
UUID: 1ec9414c-232a-6b00-b3c8-9e6bdeced846

Phiên bản: v6 (Dấu thời gian được sắp xếp)
Biến thể: RFC 4122
Ngày và giờ: 30.01.2026 14:23:45.123
Chuỗi đồng hồ: 3272
ID nút: 9E:6B:DE:CE:D8:46
```

**Sử dụng:**

- Xác định thời gian tạo bản ghi
- Phân tích thứ tự thời gian trong DB
- Gỡ lỗi hệ thống phân tán

### UUID v7 - Dấu thời gian Unix

**Bạn có thể nhận được gì:**

- ✅ **Dấu thời gian Unix** - mili giây kể từ 1.1.1970
- ✅ **Ngày và giờ** - định dạng dấu thời gian Unix tiêu chuẩn
- ❌ **Phần ngẫu nhiên** - không thể giải mã

**Ví dụ:**

```
UUID: 017f22e2-79b0-7cc3-98c4-dc0c0c07398f

Phiên bản: v7 (Dấu thời gian Unix)
Biến thể: RFC 4122
Ngày và giờ: 30.01.2026 14:23:45.123
```

**Sử dụng:**

- Lấy thời gian tạo của các UUID hiện đại
- Phân tích thứ tự thời gian
- Di chuyển dữ liệu với dấu thời gian

## Cấu trúc UUID

UUID có định dạng: `xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx`

```
6ba7b810-9dad-11d1-80b4-00c04fd430c8
│      │ │  │ │  │ │  │ │           │
│      │ │  │ │  │ │  │ └───────────┴─ Nút (48 bit)
│      │ │  │ │  │ └──┴─────────────── Chuỗi đồng hồ (14 bit)
│      │ │  │ └──┴────────────────────── Biến thể (2-3 bit)
│      │ │  └──┴───────────────────────────── Phiên bản (4 bit) + Time High
│      │ └──┴──────────────────────────────────── Time Mid (16 bit)
└─────────────────────────────────────────── Time Low (32 bit)
```

### Trích xuất phiên bản và biến thể

**Phiên bản (M):**

- Vị trí: Ký tự thập lục phân thứ 13
- Giá trị: 1-7 (các phiên bản UUID khác nhau)

**Biến thể (N):**

- Vị trí: Ký tự thập lục phân thứ 17
- `0-7`: NCS (Dành riêng)
- `8-B`: RFC 4122 (tiêu chuẩn)
- `C-D`: Microsoft
- `E-F`: Tương lai (Dành riêng)

## Ví dụ thực tế

### Gỡ lỗi - Xác định thời gian tạo bản ghi

**Kịch bản:** Người dùng báo cáo rằng dữ liệu của họ đã biến mất. Bạn cần xác định thời điểm bản ghi được tạo.

```
UUID: 6ba7b810-9dad-11d1-80b4-00c04fd430c8
Đã giải mã: 15.10.1997 04:25:33.000

→ Bản ghi được tạo vào năm 1997
```

### Phân tích pháp y - Xác minh trình tự thời gian

**Kịch bản:** Kiểm tra xem các sự kiện có diễn ra đúng trình tự hay không.

```
UUID 1: 1ec9414c-232a-6b00-b3c8-9e6bdeced846 → 30.01.2026 14:23:45
UUID 2: 1ec9414d-557b-6a00-8f32-1234567890ab → 30.01.2026 14:25:12

→ UUID 2 được tạo sau (đúng thứ tự)
```

### Xác định loại UUID trong cơ sở dữ liệu

**Kịch bản:** Bạn có các UUID hỗn hợp trong DB và cần biết UUID nào là ngẫu nhiên và UUID nào có dấu thời gian.

```
f47ac10b-58cc-4372-a567-0e02b2c3d479 → v4 (ngẫu nhiên, không có dấu thời gian)
6ba7b810-9dad-11d1-80b4-00c04fd430c8 → v1 (có dấu thời gian)
017f22e2-79b0-7cc3-98c4-dc0c0c07398f → v7 (có dấu thời gian)

→ Chỉ UUID v1 và v7 chứa thông tin thời gian
```

## Hạn chế và những gì không thể lấy được

### ❌ UUID v3/v5 - Không thể giải mã hash

**Không thể:**

- Khôi phục không gian tên gốc
- Khôi phục tên/giá trị gốc
- Xác định dữ liệu nào đã được băm

**Lý do:** MD5 và SHA-1 là các hàm băm một chiều.

### ❌ UUID v4 - Không có dữ liệu ẩn

**Không thể:**

- Lấy bất kỳ siêu dữ liệu nào
- Xác định thời gian tạo
- Xác định nguồn

**Lý do:** UUID v4 hoàn toàn ngẫu nhiên, không chứa thông tin cấu trúc.

### ⚠️ UUID v1/v6 - ID nút có thể ngẫu nhiên

**Hạn chế:**

- Trong các triển khai hiện đại, ID nút thường là ngẫu nhiên (không phải địa chỉ MAC thật)
- Vì lý do bảo mật, địa chỉ MAC thường được thay thế bằng các giá trị ngẫu nhiên
- Không thể xác định đáng tin cậy một máy cụ thể

## Xác thực UUID

Bộ giải mã cũng hoạt động như một công cụ xác thực UUID.

### Kiểm tra tính hợp lệ của UUID

Bộ giải mã tự động xác thực:

- ✅ Định dạng chính xác (8-4-4-4-12 ký tự thập lục phân)
- ✅ Ký tự thập lục phân hợp lệ (0-9, a-f)
- ✅ Độ dài chính xác (36 ký tự bao gồm dấu gạch ngang, 32 nếu không)

### Nhận diện UUID không hợp lệ

**Ví dụ không hợp lệ:**

```
❌ 6ba7b810-9dad-11d1-80b4          (quá ngắn)
❌ 6ba7b810-9dad-11d1-80b4-GHIJKLMN (ký tự không hợp lệ)
❌ 6ba7b81-09dad-11d1-80b4-00c04fd4 (định dạng sai)
```

## Dành cho nhà phát triển

### Triển khai trong JavaScript

```
// Trích xuất phiên bản từ UUID
function getUUIDVersion(uuid) {
    const cleaned = uuid.replace(/-/g, '');
    return parseInt(cleaned[12], 16);
}

// Trích xuất dấu thời gian từ UUID v7
function extractV7Timestamp(uuid) {
    const cleaned = uuid.replace(/-/g, '');
    const timeHi = parseInt(cleaned.substring(0, 8), 16);
    const timeLow = parseInt(cleaned.substring(8, 12), 16);
    const unixMs = Number(BigInt("0x" + cleaned.substring(0, 12)) >> 16n);
    return new Date(unixMs);
}

// Ví dụ
const uuid = '017f22e2-79b0-7cc3-98c4-dc0c0c07398f';
console.log(getUUIDVersion(uuid)); // 7
console.log(extractV7Timestamp(uuid)); // Date object
```

### Xác thực UUID bằng Regex

```
const uuidRegex = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;

function isValidUUID(uuid) {
    return uuidRegex.test(uuid);
}
```

## Câu hỏi thường gặp (FAQ)

### Tôi có thể lấy thời gian tạo từ UUID v4 không?

Không, UUID v4 hoàn toàn ngẫu nhiên và không chứa bất kỳ thông tin thời gian nào. Đối với UUID có thời gian, hãy sử dụng v1, v6 hoặc v7.

### Tại sao ID nút trong UUID v1 lại ngẫu nhiên thay vì địa chỉ MAC?

Các triển khai hiện đại sử dụng ID nút ngẫu nhiên để bảo vệ quyền riêng tư. Việc tiết lộ địa chỉ MAC thật có thể là một rủi ro bảo mật.

### Tôi có thể khôi phục URL hoặc tên gốc từ UUID v5 không?

Không, UUID v5 sử dụng hash SHA-1 là một chiều. Không thể khôi phục dữ liệu gốc từ hash.

### Làm cách nào để biết UUID là ngẫu nhiên (v4)?

Bộ giải mã sẽ hiển thị phiên bản UUID. Nếu phiên bản là 4, đó là một UUID được tạo ngẫu nhiên không có siêu dữ liệu bổ sung.

### Dấu thời gian trong UUID v1 có chính xác không?

Có, UUID v1 có độ chính xác lý thuyết là 100 nano giây (từ ngày 15 tháng 10 năm 1582). Trong thực tế, điều này phụ thuộc vào độ chính xác của đồng hồ hệ thống.

### Tôi có thể sử dụng bộ giải mã để xác thực UUID không?

Có, bộ giải mã tự động xác thực định dạng UUID và sẽ hiển thị lỗi nếu UUID không hợp lệ.

## Bảo mật và Quyền riêng tư

### UUID tiết lộ điều gì?

**UUID v1/v6:**

- ⚠️ **Thời gian tạo** - có thể tiết lộ thời gian hoạt động
- ⚠️ **Tiềm ẩn địa chỉ MAC** - rủi ro nhận dạng thiết bị (ngẫu nhiên trong các triển khai hiện đại)

**UUID v4:**

- ✅ **An toàn** - không chứa siêu dữ liệu

**UUID v7:**

- ⚠️ **Dấu thời gian Unix** - tiết lộ thời gian tạo

### Khuyến nghị

- ✅ Sử dụng UUID v4 để có quyền riêng tư tối đa
- ⚠️ Cẩn thận với UUID v1/v6/v7 trong API công khai (chúng tiết lộ thông tin thời gian)
- ✅ UUID v5 là xác định, nhưng không tiết lộ dữ liệu gốc
- ⚠️ Hash MD5 không hoàn toàn an toàn

## Sự thật thú vị

- **UUID v1 sớm nhất có thể**: 15 tháng 10 năm 1582 00:00:00 (bắt đầu lịch Gregorian)
- **UUID v7 mới nhất**: 10889-08-02 05:31:50.655 (giới hạn dấu thời gian Unix tính bằng mili giây)
- **Độ chính xác của UUID v1**: 100 nano giây (lý thuyết là 10 triệu UUID mỗi giây)
- **UUID Nil**: `00000000-0000-0000-0000-000000000000` (UUID “rỗng” đặc biệt)
- **UUID Max**: `ffffffff-ffff-ffff-ffff-ffffffffffff` (giá trị tối đa)

## Sử dụng trong các hệ thống khác nhau

### PostgreSQL

```
-- Trích xuất phiên bản UUID
SELECT substring(id::text, 15, 1) as version
FROM users;

-- Lọc theo phiên bản
SELECT *
FROM users
WHERE substring(id::text, 15, 1) = '4';
```

### MySQL

```
-- Kiểm tra định dạng UUID
SELECT id
FROM users
WHERE id REGEXP '^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$';
```

## Other languages

- Čeština (cs): [UUID decoder a validátor](https://acrafto.com/cs/dekoder-uuid/) ([Markdown](https://acrafto.com/cs/dekoder-uuid/index.md))
- Slovenčina (sk): [UUID dekodér a validátor](https://acrafto.com/sk/uuid-dekoder-validator/) ([Markdown](https://acrafto.com/sk/uuid-dekoder-validator/index.md))
- English (en): [UUID Decoder and Validator](https://acrafto.com/en/uuid-decoder-validator/) ([Markdown](https://acrafto.com/en/uuid-decoder-validator/index.md))
- Deutsch (de): [UUID Decoder & Validator](https://acrafto.com/de/uuid-dekodierer-validator/) ([Markdown](https://acrafto.com/de/uuid-dekodierer-validator/index.md))
- Français (fr): [Décodeur et validateur UUID](https://acrafto.com/fr/decodeur-validateur-uuid/) ([Markdown](https://acrafto.com/fr/decodeur-validateur-uuid/index.md))
- Español (es): [Decodificador y validador UUID](https://acrafto.com/es/decodificador-validador-uuid/) ([Markdown](https://acrafto.com/es/decodificador-validador-uuid/index.md))
- Italiano (it): [Decodificatore e validatore UUID](https://acrafto.com/it/decodificatore-validatore-uuid/) ([Markdown](https://acrafto.com/it/decodificatore-validatore-uuid/index.md))
- Português (pt): [Decodificador e validador de UUID](https://acrafto.com/pt/analise-uuid/) ([Markdown](https://acrafto.com/pt/analise-uuid/index.md))
- Nederlands (nl): [UUID decoder & validator](https://acrafto.com/nl/uuid-decoder-validator/) ([Markdown](https://acrafto.com/nl/uuid-decoder-validator/index.md))
- Polski (pl): [Dekoder i walidator UUID](https://acrafto.com/pl/dekoder-i-walidator-uuid/) ([Markdown](https://acrafto.com/pl/dekoder-i-walidator-uuid/index.md))
- Română (ro): [Decodor și validator UUID](https://acrafto.com/ro/uuid-decoder-validator/) ([Markdown](https://acrafto.com/ro/uuid-decoder-validator/index.md))
- Magyar (hu): [UUID dekóder és validátor](https://acrafto.com/hu/uuid-dekoder-validator/) ([Markdown](https://acrafto.com/hu/uuid-dekoder-validator/index.md))
- Ελληνικά (el): [Αποκωδικοποιητής UUID](https://acrafto.com/el/uuid-decoder/) ([Markdown](https://acrafto.com/el/uuid-decoder/index.md))
- Български (bg): [UUID декодер и валидатор](https://acrafto.com/bg/uuid-dekoder-validator/) ([Markdown](https://acrafto.com/bg/uuid-dekoder-validator/index.md))
- Hrvatski (hr): [UUID dekoder i validator](https://acrafto.com/hr/uuid-dekoder-validator/) ([Markdown](https://acrafto.com/hr/uuid-dekoder-validator/index.md))
- Slovenščina (sl): [UUID decoder in validator](https://acrafto.com/sl/uuid-dekoder-validator/) ([Markdown](https://acrafto.com/sl/uuid-dekoder-validator/index.md))
- Eesti (et): [UUID dekooder ja validaator](https://acrafto.com/et/uuid-dekooder-validaator/) ([Markdown](https://acrafto.com/et/uuid-dekooder-validaator/index.md))
- Latviešu (lv): [UUID dekodētājs un validētājs](https://acrafto.com/lv/uuid-dekodetajs-validetajs/) ([Markdown](https://acrafto.com/lv/uuid-dekodetajs-validetajs/index.md))
- Lietuvių (lt): [UUID dekoderis](https://acrafto.com/lt/uuid-dekoderis-ir-validuoklis/) ([Markdown](https://acrafto.com/lt/uuid-dekoderis-ir-validuoklis/index.md))
- Svenska (sv): [UUID decoder och validator](https://acrafto.com/sv/uuid-avkodare-validerare/) ([Markdown](https://acrafto.com/sv/uuid-avkodare-validerare/index.md))
- Dansk (da): [UUID dekoder og validator](https://acrafto.com/da/uuid-dekoder-validator/) ([Markdown](https://acrafto.com/da/uuid-dekoder-validator/index.md))
- Suomi (fi): [UUID-dekooderi ja validaattori](https://acrafto.com/fi/uuid-dekooderi/) ([Markdown](https://acrafto.com/fi/uuid-dekooderi/index.md))
- Norsk (no): [UUID-dekoder og validator](https://acrafto.com/no/uuid-dekoder-validator/) ([Markdown](https://acrafto.com/no/uuid-dekoder-validator/index.md))
- Українська (uk): [Декодер і валідатор UUID](https://acrafto.com/uk/uuid-dekoder/) ([Markdown](https://acrafto.com/uk/uuid-dekoder/index.md))
- Русский (ru): [UUID декодер и валидатор](https://acrafto.com/ru/uuid-dekoder-validator/) ([Markdown](https://acrafto.com/ru/uuid-dekoder-validator/index.md))
- Српски (sr): [UUID dekoder i validator](https://acrafto.com/sr/uuid-dekoder-validator/) ([Markdown](https://acrafto.com/sr/uuid-dekoder-validator/index.md))
- Македонски (mk): [UUID декодер и валидатор](https://acrafto.com/mk/uuid-dekoder-validator/) ([Markdown](https://acrafto.com/mk/uuid-dekoder-validator/index.md))
- Bosanski (bs): [UUID dekoder i validator](https://acrafto.com/bs/uuid-dekoder-validat/) ([Markdown](https://acrafto.com/bs/uuid-dekoder-validat/index.md))
- Shqip (sq): [Dekodues UUID](https://acrafto.com/sq/dekodues-uuid/) ([Markdown](https://acrafto.com/sq/dekodues-uuid/index.md))
- Türkçe (tr): [UUID çözücü ve doğrulayıcı](https://acrafto.com/tr/uuid-cozucu-dogrulayici/) ([Markdown](https://acrafto.com/tr/uuid-cozucu-dogrulayici/index.md))
- 日本語 (ja): [UUIDデコード・検証](https://acrafto.com/ja/uuid-decoder-validator/) ([Markdown](https://acrafto.com/ja/uuid-decoder-validator/index.md))
- 한국어 (ko): [UUID 디코더 및 검사기](https://acrafto.com/ko/uuid-decoder-validator/) ([Markdown](https://acrafto.com/ko/uuid-decoder-validator/index.md))
- العربية (ar): [فك تشفير UUID والتحقق منه](https://acrafto.com/ar/uuid-decoder-validator/) ([Markdown](https://acrafto.com/ar/uuid-decoder-validator/index.md))
- हिन्दी (hi): [UUID डिकोडर और वैलिडेटर](https://acrafto.com/hi/uuid-decoder-validator/) ([Markdown](https://acrafto.com/hi/uuid-decoder-validator/index.md))
- Bahasa Indonesia (id): [UUID decoder dan validator](https://acrafto.com/id/dekoder-uuid-validator/) ([Markdown](https://acrafto.com/id/dekoder-uuid-validator/index.md))
- ไทย (th): [UUID Decoder](https://acrafto.com/th/uuid-decoder-validator/) ([Markdown](https://acrafto.com/th/uuid-decoder-validator/index.md))
- עברית (he): [מפענח UUID](https://acrafto.com/he/uuid-decoder-validator/) ([Markdown](https://acrafto.com/he/uuid-decoder-validator/index.md))
