2010-09-22 34 views
5

Hầu hết các UUID dựa trên thời gian (loại 1) được tạo bằng thời gian hiện tại. Tôi đang di chuyển cơ sở dữ liệu MySQL sang cassandra và muốn tạo UUID theo thời gian cho các mục đã lưu trữ. Ai đó có thể cung cấp một ví dụ về cách tạo UUID loại 1 bằng các khoảng thời gian trong quá khứ không?Có cách nào để tạo lại UUID dựa trên thời gian/nút trong PHP không?

+2

lẽ có thể, nhưng tại sao? Mục đích duy nhất của UUID là duy nhất trên toàn cầu, mà không thực sự chứa bất kỳ thông tin nào khác? –

Trả lời

3

Tất cả các phiên bản uuids 1 là sự kết hợp của số nhận dạng nút (địa chỉ MAC), dấu thời gian và một hạt giống ngẫu nhiên.

Có thể. Quá trình này có thể đảo ngược.

Từ RFC4122 về phần dấu thời gian của phiên bản UUID 1 (phần 4.1.4):

"Đối với phiên bản UUID 1, điều này được thể hiện bằng Coordinated Universal Time (UTC) như là một tội danh Khoảng thời gian 100 nano giây kể từ 00: 00: 00.00, 15 tháng 10 năm 1582 (ngày cải cách Gregorian theo lịch của Cơ đốc giáo). "

Basic algorithm (section 4.2.1) để tạo cơ sở thời gian UUID (uuid phiên bản 1)

Các vấn đề liên quan