UUID გენერატორი

1111
დაამატეთ ვებგვერდზე მეტაინფორმაცია

სხვა ინსტრუმენტები

UUID/GUID-ს გენერირება

UUID/GUID-ს გენერირება

უნივერსალურად უნიკალური იდენტიფიკატორი (UUID), ასევე ცნობილი როგორც გლობალურად უნიკალური იდენტიფიკატორი (GUID), ფართოდ გამოიყენება კომპიუტერულ სისტემებში.

ეს არის 128-ბიტიანი კოდი, რომელიც გენერირდება სისტემის მიერ ცვლადებსა და მუდმივებზე დაყრდნობით: მიმდინარე დრო, MAC მისამართი, SHA-1 ჰეში, MD5 სახელთა სივრცე. UUID-ის გენერირების საბოლოო შედეგი, რომელიც ნაჩვენებია დეფისებით გამოყოფილი 32-სიმბოლოიანი ალფაციფრული კოდის სახით, შეიძლება თვითნებური ჩანდეს, მაგრამ სინამდვილეში ეს რთული გამოთვლების შედეგია. ამრიგად, კომპიუტერი არ „იგონებს“ კოდს, არამედ აყალიბებს მას კონკრეტული ტექნიკური რაოდენობებისგან, რომლებიც შესაბამისია მოცემულ დროს.

ალბათობა იმისა, რომ ერთი და იგივე UUID გენერირებული იქნება ორ განსხვავებულ კომპიუტერზე სხვადასხვა დროს ნულისკენ მიდრეკილია, რაც შესაძლებელს ხდის მიღებული კოდების გამოყენებას წერტილის/ლოკალური მონაცემების იდენტიფიკაციისთვის საკოორდინაციო ცენტრის მითითების გარეშე. დღეს, UUID/GUID არის ყველგან გავრცელებული როგორც ონლაინ, ისე ოფლაინ ქსელებში და ეფექტურად მუშაობს არა მხოლოდ გლობალურ ინტერნეტ სივრცეში, არამედ დამოუკიდებელ კომპიუტერულ სისტემებშიც.

UUID ისტორია

128-ბიტიანი UUID კოდები პირველად გამოიყენა ამერიკულმა კომპანიამ Apollo Computer 1980-იან წლებში. ისინი ეფუძნებოდა უფრო მარტივ 64-ბიტიან კოდებს, რომლებიც გამოიყენება Domain/OS-ში და ფართოდ გამოიყენებოდა Open Software Foundation-ის გამოთვლით გარემოში.

Windows-ის პირველი პლატფორმების მოსვლასთან ერთად, გლობალურად უნიკალური იდენტიფიკატორი განზოგადებული და სტანდარტიზებულია. Microsoft-მა მიიღო DCE დიზაინი Apollo Computer-დან და დაარეგისტრირა URN სახელთა სივრცე RFC 4122-ში. 2005 წელს ეს უკანასკნელი შემოთავაზებული იქნა ახალ სტანდარტად IETF-ის მიერ და UUID სტანდარტიზებული იყო ITU-ში.

ადრე 2002 წელს გამოვლინდა სისტემის მუშაობის პრობლემები ადგილობრივ მონაცემთა ბაზებში UUID-ების პირველად გასაღებად გამოყენებისას. ისინი დაფიქსირდა მე-4 ვერსიაში კომპიუტერის სისტემის დროის მიხედვით არა შემთხვევითი სუფიქსის დამატებით. ეგრეთ წოდებული COMB (Combined GUID Time Identifier) ​​მიდგომა გაზარდა კოდების დუბლირების რისკები, მაგრამ ამავდროულად მნიშვნელოვნად გააუმჯობესა შესრულება Microsoft SQL Server-თან მუშაობისას.

IT ტექნოლოგიების განვითარებით, უნივერსალური უნიკალური იდენტიფიკატორი აღარ იყო მაღალ სპეციალიზებული ტექნიკური ინსტრუმენტი და დღეს მისი გამოყენება ყველას შეუძლია. გენერირებული კოდების გამეორების ალბათობა არ არის ნულის ტოლი, მაგრამ მიდრეკილია მისკენ და მათ მიერ შესაძლებელია ნებისმიერი ციფრული ინფორმაციის იდენტიფიცირება, რის შემდეგაც ისინი შეიძლება გაერთიანდეს ერთ მონაცემთა მასივებში გამეორების მინიმალური რისკით.

UUID უპირატესობები

გლობალური უნიკალური კოდების გენერატორები არ საჭიროებენ მონაცემთა ცენტრალიზებულ შეჯერებას/სინქრონიზაციას და თავისუფლად ხელმისაწვდომია ყველა მომხმარებლისთვის. UUID-ის ძირითადი უპირატესობები მოიცავს:

  • კოდების „შეჯახების“ (განმეორების) მინიმალური რისკები. მიუხედავად მათი მასიური გამოყენებისა, გამეორების ალბათობა ნულისკენ მიდის.
  • მონაცემთა სხვადასხვა მასივების შეერთების შესაძლებლობა UUID-ების, როგორც ძირითადი (უნიკალური) გასაღებების გამოყენებით.
  • მონაცემების გამარტივებული განაწილება მრავალ დისპერსიულ სერვერზე.
  • კოდების გენერირების შესაძლებლობა ხაზგარეშე.

უნიკალური საიდენტიფიკაციო კოდები, დაწერილი ფორმატში xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx, დისპერსიულ სისტემებს საშუალებას აძლევს ამოიცნონ ინფორმაცია კოორდინაციის გარეშე ერთი მონაცემთა ცენტრიდან: შეცდომების/გამეორებების თითქმის ნულოვანი ალბათობით. ეს ფუნქცია, მარტივად გამოყენებასთან და კომპიუტერის მუშაობის დაბალ მოთხოვნებთან ერთად, ხდის UUID მოთხოვნადს და შეუცვლელს მრავალფეროვან IT ინდუსტრიებში და ავტონომიურ გამოთვლით სისტემებში.

უნივერსალურად უნიკალური იდენტიფიკატორი

უნივერსალურად უნიკალური იდენტიფიკატორი

UUID-ს შეუძლია კოდების გენერირება სხვადასხვა ალგორითმებისა და ცვლადების/მუდმივი მნიშვნელობების გამოყენებით.

იდენტიფიკატორის სულ 5 ვერსიაა, რომლებიც იყენებენ სისტემის თარიღს/დროს და MAC მისამართებს, DCE უსაფრთხოების პროტოკოლებს, MD5 ჰეშს, SHA-1 ჰეშს და სახელების სივრცის გენერირებას.

ყველა შემთხვევაში, საბოლოო შედეგი ნაჩვენებია ფორმატში xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx (თექვსმეტობითი აღნიშვნის რიცხვი, რომელიც შედგება პატარა ლათინური ასოებისა და რიცხვებისგან და იყოფა დეფისებით ხუთ ბლოკად: 8-4 -4-4- 12), M ნიშნავს ვერსიას, N ნიშნავს UUID ვარიანტს.

ამგვარად, სისტემა ერთდროულად იყენებს 36 სიმბოლოს (26 ასო და 10 რიცხვი), ასე რომ, 32-ნიშნა კოდების გამეორების ალბათობა ნულისკენ მიისწრაფვის, მიუხედავად იმისა, რომ ისინი ყოველდღიურად გენერირდება მილიონობით მომხმარებლის მიერ მთელს მსოფლიოში.

UUID ვერსიები

ვერსია 1

უნიკალური იდენტიფიკატორის პირველი ვერსია კოდის გენერირებისას ეფუძნება კომპიუტერის MAC მისამართს და სისტემის დროს, რომელიც ცვლის მის რიცხვით მნიშვნელობას 1 ჯერ წამში. გენერირების პროცესი შედგება ხუთი ეტაპისგან:

  • ქვედა 32 ბიტიანი ინფორმაცია აღებულია UTC ტეგიდან. ისინი გარდაიქმნება 8 თექვსმეტობით სიმბოლოდ და იკავებს 4 ბაიტს.
  • ინფორმაციის საშუალოდ 16 ბიტი აღებულია ერთი და იგივე UTC ლეიბლიდან და გარდაიქმნება 4 თექვსმეტობით სიმბოლოდ, რომლებიც იკავებს 2 ბაიტს.
  • UTC ტეგიდან ინფორმაციის ზედა 12 ბიტი აღებულია და გარდაიქმნება კიდევ 4 თექვსმეტობით სიმბოლოდ.
  • კიდევ 1-3 ბიტი ეცემა საათის თანმიმდევრობას და ამცირებს შეჯახების რისკს შემთხვევითობის/გაურკვევლობის ხარისხის შემოღებით. სისტემის დრო ან პირობითად შენელდება ან უკან დახევა - ისე, რომ ორი ან მეტი იდენტიფიკატორი, რომელიც ერთდროულად მუშაობს ერთსა და იმავე კომპიუტერზე, არ "გადაიკვეთოს".
  • დარჩენილი 6 ბაიტი არის მუდმივი მნიშვნელობა, რომელიც გენერირებულია მოწყობილობის MAC მისამართის საფუძველზე. იგი შედგება 12 თექვსმეტობითი სიმბოლოსგან და ზომით 48 ბიტია.

რადგან UUID-ის პირველი ვერსიის ალგორითმი განუყოფლად არის დაკავშირებული სისტემის დროსთან, საათის თანმიმდევრობის გამოყენება სავალდებულოა. წინააღმდეგ შემთხვევაში, იგივე კოდების გენერირების რისკი ბევრჯერ იზრდება - მეორეში, როდესაც სისტემის დრო „იყინება“ ამა თუ იმ მნიშვნელობით.

ვერსია 2

მეორე ვერსია მინიმალურად განსხვავდება პირველისგან და იშვიათად გამოიყენება პრაქტიკაში. საათის მიმდევრობის ნაცვლად, ის იყენებს სისტემის იდენტიფიკატორს, რომელიც დაკავშირებულია მომხმარებლის მონაცემებთან ან სხვა უნიკალურ მნიშვნელობებთან, რომლებიც არ მეორდება სხვა კომპიუტერებზე ან მეორდება ძალიან იშვიათად. მეორე ვერსიაში შემთხვევითობის ეფექტი მინიმუმამდეა დაყვანილი და მისი გამოყენება შესაძლებელია განაწილებული გამოთვლითი გარემოს უსაფრთხოების გასაუმჯობესებლად.

ვერსიები 3 და 5

მათ ბევრი საერთო აქვთ: ისინი იყენებენ უნიკალურ სახელებს და სახელებს (MD5 სივრციდან) კოდების, ანუ არა შემთხვევითი მნიშვნელობების შესაქმნელად. მხოლოდ მე-3 ვერსია იყენებს სტანდარტულ ჰეშს, ხოლო 5 ვერსია იყენებს SHA-1 ჰეშს. ასეთი იდენტიფიკატორები ნაკლებად არიან დამოკიდებული შემთხვევით ცვლადებზე.

ვერსია 4

ამ UUID ვერსიის თაობა 90%-ზე მეტი შემთხვევითია. მას აქვს 6 ბიტი მუდმივი მნიშვნელობებისთვის და 122 თვითნებური. ალგორითმის დანერგვა არის ის, რომ 128 ბიტი ინფორმაცია თავდაპირველად შემთხვევით გენერირებულია და მათგან 6 იცვლება ვერსიით და ვარიანტის მონაცემებით.

ფსევდო შემთხვევითი რიცხვების გენერატორის როლი მეოთხე ვერსიაში მაქსიმალურია და თუ მას აქვს ძალიან მარტივი ალგორითმი, გამეორებების/შეჯახების რისკები მნიშვნელოვნად იზრდება. ამის მიუხედავად, ეს არის მეოთხე ვერსია, რომელიც ყველაზე გავრცელებული და ხშირად გამოიყენება პრაქტიკაში.

UUID პარამეტრები

უნიკალური UUID რამდენჯერმე დაიხვეწა კომპიუტერული ტექნოლოგიების განვითარებასთან ერთად და დღეს ის რამდენიმე ვერსიით არის წარმოდგენილი.

ოპცია 0

შემუშავებულია მოძველებული Apollo Network Computing System 1.5 1988 ფორმატის მონაცემთა ბაზებთან მუშაობისთვის. ეს ვარიანტი მათთან თავსებადია და არ ეწინააღმდეგება NCS ისტორიულ UUID-ებს.

პარამეტრები 1 და 2

გამოიყენება თანამედროვე მონაცემთა ბლოკებისა და მასივების იდენტიფიცირებისთვის და კანონიკური ტექსტის სახით ისინი არ განსხვავდებიან ერთმანეთისგან, გარდა ვარიანტის ბიტების ჩაწერის რიგისა. ასე რომ, ვარიანტი 1 იყენებს big-endian ბაიტის წესრიგს, ხოლო ვარიანტი 2 იყენებს title-endian. პირველი არის მთავარი, ხოლო მეორე განკუთვნილია Microsoft Windows-ის ადრეულ GUID-ებთან მუშაობისთვის.

ვარიანტი 3

ამჟამად არ გამოიყენება. ეს არის დაჯავშნილი ვერსია მომავალი გამოყენებისთვის - როდესაც ამოიწურება წინა ვარიანტების შესაძლებლობები.

სისტემების უმეტესობა იდენტიფიკატორს ბიგ-ენდიანში კოდირებს, მაგრამ არის გამონაკლისები. მაგალითად, Microsoft COM/OLE ბიბლიოთეკებში მარშალინგი იყენებს შერეულ ენდიანს სათაური-ენდიანის და დიდი-ენდიანის ბლოკებიდან კოდის გენერირებისას. პირველი არის UUID-ის პირველი სამი კომპონენტი, ხოლო მეორე არის ბოლო ორი.