Trình tạo UUID

Công cụ khác

Quay guồng{$ ',' | translate $} Đồng hồ bấm giờ{$ ',' | translate $} Chuyển đổi đơn vị{$ ',' | translate $} Lật đồng xu{$ ',' | translate $} Trình tạo số ngẫu nhiên{$ ',' | translate $} Đổ xúc xắc{$ ',' | translate $} Máy tính BMI{$ ',' | translate $} Trình tính calorie{$ ',' | translate $} Máy tính BMR{$ ',' | translate $} Trình tính toán mỡ cơ thể{$ ',' | translate $} Máy tính TDEE{$ ',' | translate $} Bộ hẹn giờ Tabata{$ ',' | translate $} Trình tạo phần trăm{$ ',' | translate $} Trình tạo mã QR{$ ',' | translate $} Trình tạo mật khẩu{$ ',' | translate $} Thử nghiệm thời gian phản ứng{$ ',' | translate $} Kiểm tra tốc độ gõ{$ ',' | translate $} Thử nghiệm CPS{$ ',' | translate $} Đếm số từ{$ ',' | translate $} Đổi hoa-thường{$ ',' | translate $} So sánh văn bản{$ ',' | translate $} Máy tính thế chấp{$ ',' | translate $} Máy tính khoản vay{$ ',' | translate $} Trình tính khoản vay mua ô-tô{$ ',' | translate $} Máy tính VAT{$ ',' | translate $} Máy tính lãi suất kép{$ ',' | translate $} Trình tính lương{$ ',' | translate $} Piano ảo{$ ',' | translate $} Bộ tạo tiếng ồn nền{$ ',' | translate $} Máy tạo nhịp{$ ',' | translate $} Trình tính toán chiết khấu{$ ',' | translate $} Số tuần hiện tại{$ ',' | translate $} Trình tính toán tiền boa{$ ',' | translate $} Máy tính thời gian{$ ',' | translate $} Máy tính ngày{$ ',' | translate $} Máy tính tuổi{$ ',' | translate $} Chuyển đổi tiền tệ{$ ',' | translate $} Máy tính giấc ngủ{$ ',' | translate $} Tuần trăng{$ ',' | translate $} Trình tạo bảng màu{$ ',' | translate $} Bộ chọn màu{$ ',' | translate $} Trình tạo bảng phối màu{$ ',' | translate $} Máy tính kích thước nhẫn{$ ',' | translate $} Máy tính kích thước quần áo{$ ',' | translate $} Máy tính kích thước giày{$ ',' | translate $} Trình tính toán kích cỡ áo ngực{$ ',' | translate $} Trình tính toán kì rụng trứng{$ ',' | translate $} Cách tính tuổi thai{$ ',' | translate $} Biểu tượng hoàng đạo{$ ',' | translate $} Kiểm tra IQ{$ ',' | translate $} Emoji{$ ',' | translate $} Đồng hồ bấm giờ{$ ',' | translate $} Đếm ngược{$ ',' | translate $} Đồng hồ báo thức{$ ',' | translate $} Trình tính toán mạng con{$ ',' | translate $} Kiểm tra tốc độ internet{$ ',' | translate $} Địa chỉ IP{$ ',' | translate $} Bộ chuyển đổi Base64{$ ',' | translate $} Trình tạo mã băm MD5{$ ',' | translate $} Trình chỉnh sửa Markdown{$ ',' | translate $} Trình tạo Lorem Ipsum{$ ',' | translate $} Bộ đếm Pomodoro

Tạo UUID/GUID

Tạo UUID/GUID

Mã nhận dạng duy nhất toàn cầu (UUID), còn được gọi là Mã định danh duy nhất toàn cầu (GUID), đã được sử dụng rộng rãi trong các hệ thống máy tính.

Đó là mã 128-bit do hệ thống tạo ra dựa trên các biến và hằng số: thời gian hiện tại, địa chỉ MAC, hàm băm SHA-1, không gian tên MD5. Kết quả cuối cùng của việc tạo UUID, được hiển thị dưới dạng mã gồm 32 ký tự chữ và số được phân tách bằng dấu gạch nối, có vẻ tùy ý, nhưng trên thực tế, đó là kết quả của các phép tính phức tạp. Do đó, máy tính không “phát minh” ra mã mà tạo ra mã đó từ các đại lượng kỹ thuật cụ thể có liên quan tại một thời điểm nhất định.

Xác suất để cùng một UUID được tạo trên hai máy tính khác nhau vào các thời điểm khác nhau có xu hướng bằng 0, điều này cho phép sử dụng các mã kết quả để nhận dạng dữ liệu điểm/cục bộ mà không cần tham chiếu đến trung tâm điều phối. Ngày nay, UUID/GUID phổ biến trong cả mạng trực tuyến và ngoại tuyến, đồng thời hoạt động hiệu quả không chỉ trong không gian Internet toàn cầu mà còn trong các hệ thống máy tính độc lập.

Lịch sử UUID

Mã UUID 128 bit lần đầu tiên được sử dụng bởi công ty Máy tính Apollo của Mỹ vào những năm 1980. Chúng dựa trên các mã 64-bit đơn giản hơn được sử dụng trong Miền/HĐH và được sử dụng rộng rãi trong môi trường điện toán của Tổ chức Phần mềm Mở.

Với sự ra đời của các nền tảng Windows đầu tiên, số nhận dạng duy nhất trên toàn cầu đã được khái quát hóa và chuẩn hóa. Microsoft đã áp dụng thiết kế DCE từ Máy tính Apollo và đăng ký không gian tên URN trong RFC 4122. Năm 2005, không gian tên URN được IETF đề xuất làm tiêu chuẩn mới vào năm 2005 và UUID đã được chuẩn hóa trong ITU.

Đầu năm 2002, các vấn đề về hiệu suất hệ thống đã được xác định khi sử dụng UUID làm khóa chính trong cơ sở dữ liệu cục bộ. Chúng đã được sửa trong phiên bản 4 bằng cách thêm hậu tố không ngẫu nhiên dựa trên thời gian hệ thống của máy tính. Cái gọi là phương pháp COMB (Mã định danh thời gian GUID kết hợp) làm tăng rủi ro sao chép mã, nhưng đồng thời cải thiện đáng kể hiệu suất khi làm việc với Microsoft SQL Server.

Với sự phát triển của công nghệ CNTT, mã định danh duy nhất phổ quát đã không còn là một công cụ kỹ thuật chuyên dụng cao và ngày nay mọi người đều có thể sử dụng mã này. Xác suất lặp lại của các mã được tạo không bằng 0, nhưng có xu hướng như vậy và bất kỳ thông tin kỹ thuật số nào cũng có thể được xác định bởi chúng, sau đó chúng có thể được kết hợp thành các mảng dữ liệu đơn lẻ với rủi ro lặp lại tối thiểu.

Lợi ích của UUID

Trình tạo mã duy nhất toàn cầu không yêu cầu đối chiếu/đồng bộ hóa dữ liệu tập trung và được cung cấp miễn phí cho tất cả người dùng. Những ưu điểm chính của UUID bao gồm:

  • Rủi ro "xung đột" (lặp lại) mã ở mức thấp nhất. Mặc dù được sử dụng rộng rãi, xác suất lặp lại có xu hướng bằng không.
  • Khả năng kết hợp các mảng dữ liệu khác nhau bằng cách sử dụng UUID làm khóa chính (duy nhất).
  • Đơn giản hóa việc phân phối dữ liệu trên nhiều máy chủ phân tán.
  • Khả năng tạo mã ngoại tuyến.

Mã nhận dạng duy nhất, được viết ở định dạng xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx, cho phép các hệ thống phân tán nhận dạng thông tin mà không cần phối hợp từ một trung tâm dữ liệu duy nhất: với xác suất lỗi/lặp lại gần như bằng không. Tính năng này, cùng với tính dễ sử dụng và các yêu cầu nhỏ đối với hiệu suất máy tính, khiến UUID trở thành nhu cầu và không thể thiếu trong nhiều ngành CNTT và hệ thống máy tính tự trị.

Định danh duy nhất toàn cầu

Định danh duy nhất toàn cầu

UUID có thể tạo mã bằng các thuật toán và giá trị biến/hằng số khác nhau.

Có tổng cộng 5 phiên bản của số nhận dạng, sử dụng ngày/giờ và địa chỉ MAC của hệ thống, giao thức bảo mật DCE, hàm băm MD5, hàm băm SHA-1 và không gian tên khi được tạo.

Trong mọi trường hợp, kết quả cuối cùng được hiển thị ở định dạng xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxxx (một số ở dạng ký hiệu thập lục phân, bao gồm các chữ cái và số Latinh viết thường và được chia thành năm khối bằng dấu gạch nối: 8-4 -4-4- 12), M là viết tắt của phiên bản, N là viết tắt của biến thể UUID.

Do đó, hệ thống sử dụng 36 ký tự cùng lúc (26 chữ cái và 10 số), do đó xác suất lặp lại mã 32 chữ số có xu hướng bằng 0, mặc dù thực tế là chúng được tạo ra hàng ngày bởi hàng triệu người dùng trên khắp thế giới.

Phiên bản UUID

Phiên bản 1

Phiên bản đầu tiên của mã định danh duy nhất, khi tạo mã, dựa trên địa chỉ MAC của máy tính và thời gian hệ thống của nó, thay đổi giá trị số của nó 1 lần mỗi giây. Quá trình tạo bao gồm năm giai đoạn:

  • 32 bit thông tin thấp hơn được lấy từ thẻ UTC. Chúng được chuyển đổi thành 8 ký tự thập lục phân và chiếm 4 byte.
  • Trung bình 16 bit thông tin được lấy từ cùng một nhãn UTC và được chuyển đổi thành 4 ký tự thập lục phân chiếm 2 byte.
  • 12 bit thông tin phía trên từ thẻ UTC được lấy và chuyển đổi thành 4 ký tự thập lục phân khác.
  • 1-3 bit khác rơi vào chuỗi đồng hồ và giảm rủi ro xung đột bằng cách đưa ra một mức độ ngẫu nhiên/không chắc chắn. Thời gian hệ thống bị chậm lại hoặc lùi lại một cách có điều kiện - để hai hoặc nhiều số nhận dạng hoạt động trên cùng một máy tính tại cùng một thời điểm không bị "chéo".
  • 6 byte còn lại là giá trị không đổi được tạo dựa trên địa chỉ MAC của thiết bị. Nó bao gồm 12 ký tự thập lục phân và có kích thước 48 bit.

Vì thuật toán của phiên bản đầu tiên của UUID được liên kết chặt chẽ với thời gian hệ thống nên việc sử dụng chuỗi đồng hồ là bắt buộc. Mặt khác, rủi ro khi tạo ra các mã giống nhau sẽ tăng lên gấp nhiều lần - trong thời gian thứ hai khi thời gian hệ thống “đóng băng” ở giá trị này hoặc giá trị khác.

Phiên bản 2

Phiên bản thứ hai ít khác biệt so với phiên bản đầu tiên và hiếm khi được sử dụng trong thực tế. Thay vì chuỗi đồng hồ, nó sử dụng mã định danh hệ thống gắn với dữ liệu người dùng hoặc các giá trị duy nhất khác không lặp lại trên các máy tính khác hoặc rất hiếm khi lặp lại. Ảnh hưởng của tính ngẫu nhiên trong phiên bản thứ hai được giảm thiểu và nó có thể được sử dụng để cải thiện tính bảo mật của môi trường điện toán phân tán.

Phiên bản 3 và 5

Chúng có nhiều điểm chung: chúng sử dụng tên và tên riêng (từ không gian MD5) để tạo mã, tức là các giá trị không ngẫu nhiên. Chỉ phiên bản 3 sử dụng hàm băm tiêu chuẩn, trong khi phiên bản 5 sử dụng hàm băm SHA-1. Những mã định danh như vậy ít phụ thuộc vào các biến ngẫu nhiên hơn.

Phiên bản 4

Việc tạo phiên bản UUID này hơn 90% là ngẫu nhiên. Nó có 6 bit cho các giá trị không đổi và 122 cho các giá trị tùy ý. Việc triển khai thuật toán là 128 bit thông tin được tạo ngẫu nhiên đầu tiên và 6 bit trong số đó được thay thế bằng dữ liệu phiên bản và biến thể.

Vai trò của trình tạo số giả ngẫu nhiên trong phiên bản thứ tư là tối đa và nếu nó có thuật toán quá đơn giản, nguy cơ lặp lại/xung đột sẽ tăng lên đáng kể. Mặc dù vậy, đây là phiên bản thứ tư phổ biến nhất và thường được sử dụng trong thực tế cho đến nay.

Tùy chọn UUID

UUID duy nhất đã được tinh chỉnh nhiều lần khi công nghệ máy tính phát triển và ngày nay nó được trình bày trong một số phiên bản.

Tùy chọn 0

Được thiết kế để hoạt động với cơ sở dữ liệu định dạng cũ của Hệ thống điện toán mạng Apollo 1.5 1988. Tùy chọn này tương thích ngược với chúng và không xung đột với UUID lịch sử của NCS.

Tùy chọn 1 và 2

Được sử dụng để xác định các khối và mảng dữ liệu hiện đại và ở dạng văn bản chuẩn, chúng không khác nhau, ngoại trừ thứ tự ghi các bit biến thể. Vì vậy, tùy chọn 1 sử dụng thứ tự byte cuối lớn và tùy chọn 2 sử dụng tiêu đề-endian. Cái đầu tiên là cái chính và cái thứ hai được dành riêng để làm việc với các GUID đời đầu của Microsoft Windows.

Lựa chọn 3

Hiện không được sử dụng. Đây là phiên bản dành riêng để sử dụng trong tương lai - khi hết khả năng của các tùy chọn trước đó.

Hầu hết các hệ thống đều mã hóa mã định danh theo kiểu big-endian, nhưng vẫn có những trường hợp ngoại lệ. Ví dụ: sắp xếp theo thứ tự trong các thư viện Microsoft COM/OLE sử dụng endian hỗn hợp trong khi tạo mã từ các khối title-endian và big-endian. Đầu tiên là ba thành phần đầu tiên của UUID và thứ hai là hai thành phần cuối cùng.