Nói tóm lại: Đối với GUID tạo theo tiêu chuẩn công bố thông số kỹ thuật và nó chỉ đơn giản không thể xảy ra. GUID có cấu trúc và một số trường thực sự có ý nghĩa. Hơn nữa, .NET tạo GUIDs của phiên bản 4, nơi nó hoàn toàn không thể xảy ra. Chúng được định nghĩa theo cách mà sẽ không có GUID như vậy. Để biết chi tiết, xem bên dưới ;-)
Có 5 đến 7 bit là nguyên nhân chính ở đây. Đó là số nhận dạng phiên bản (bốn bit đầu tiên của phần ba) và trường biến thể chỉ định biến thể của GUID này là gì.
Phiên bản có thể là bất kỳ thứ gì từ 1 đến 5 hiện tại.Vì vậy, chỉ có các chữ số hex hợp lệ mà chúng ta có thể có được như vậy một GUID vào thời điểm này là - rõ ràng - từ 1 đến 5.
Hãy khảo sát tỉ mỉ versions một chút:
- địa chỉ MAC và dấu thời gian. Cả hai có thể khó khăn để dỗ vào tất cả các chữ số.
- Địa chỉ MAC và dấu thời gian cũng như ID người dùng. Tương tự như đối với v1.
- băm MD5. Có thể thậm chí có thể hoạt động.
- PRNG. Không bao giờ có thể làm việc vì chữ số đầu tiên của phần thứ tư là luôn là hoặc
8
, 9
, A
hoặc B
. Điều này mâu thuẫn với số 4
cho số phiên bản.
- băm SHA-1. Có thể thậm chí có thể hoạt động.
Cho đến nay chúng tôi loại trừ phiên bản 4 là không thể, những người khác không chắc chắn. Hãy xem xét trường biến thể.
Các variant field quy định cụ thể một số mẫu bit cho khả năng tương thích ngược (x
là một không quan tâm), cụ thể là:
0 x x Reserved. NCS backward compatibility.
1 0 x The only pattern that currently can appear
1 1 0 Reserved, Microsoft Corporation backward compatibility
1 1 1 Reserved for future definition.
Kể từ khi mô hình này là lúc bắt đầu rất của phần thứ tư, điều này có nghĩa rằng bit quan trọng nhất luôn được đặt cho chữ số hex đầu tiên của phần thứ tư. Điều này có nghĩa là số này rất không bao giờ có thể là 1
, 2
, 3
hoặc 5
. Không tính GUID đã tạo, tất nhiên. Nhưng những người có MSB được đặt thành 0
xảy ra là phiên bản v1 hoặc v2. Và phần dấu thời gian của những thứ đó có nghĩa là chúng sẽ phải được tạo ra một số millenia trong tương lai để làm việc đó.
rất khó: D –
Mặc dù nó cực kỳ khó, chắc chắn có một thiết kế tốt hơn so với chỉ sử dụng GUID cho số ma thuật ?! –
Ở đây tại nơi làm việc, một anh chàng có một GUID trùng lặp một lần; anh ta sẽ không bao giờ giành chiến thắng tại xổ số, như đã dành tất cả may mắn của mình –