UUID გენერატორი

დააგენერირეთ სტანდარტული UUID-ები ონლაინ. ეს გვერდი იყენებს შემთხვევით UUID v4-ს 122 შემთხვევითი ბიტითა და ნაცნობი 36-სიმბოლოიანი ფორმით.

ფორმატი
გენერირებული ID-ები
მზადაა. დააგენერირეთ UUID-ები თქვენს ბრაუზერში.

როგორ იქმნება ეს ID

სტრუქტურა
UUID v4: 8-4-4-4-12 თექვსმეტობითი ჯგუფები RFC ვარიანტის ბიტებით.
ენტროპია
122 შემთხვევითი ბიტი; ვერსია და ვარიანტი იკავებს 6 ბიტს 128-ბიტიანი მნიშვნელობიდან.
დრო
დროის შტამპი ან მოწყობილობის მონაცემები არ კოდირდება.
კოლიზიის რისკი
დაბადების დღის პარადოქსის ზღვარი 122 შემთხვევითი ბიტისთვის უმნიშვნელოა ჩვეულებრივი აპლიკაციების, ტესტებისა და მონაცემთა ბაზების ID-ებისთვის.
მაგალითი
e8a1415e-359f-4082-b4d6-ff59fea88a53

თქვენი ID-ები გენერირდება ლოკალურად ბრაუზერის ძლიერი შემთხვევითობის გამოყენებით. BroBroGo-ზე არაფერი იგზავნება.

ხშირად დასმული კითხვები

რა ტიპის UUID-ს აგენერირებს ეს გვერდი?

იგი აგენერირებს UUID v4 მნიშვნელობებს: შემთხვევით UUID-ებს სტანდარტული დეფისებით გამოყოფილი ფორმით. გამოიყენეთ UUID v4 გვერდი, როდესაც გსურთ იგივე ძრავა v4-ზე ფოკუსირებული დეტალებით.

იგზავნება თუ არა UUID-ები სერვერზე?

არა. გენერირება ხდება თქვენს ბრაუზერში Web Crypto API-ის მეშვეობით, ამიტომ მნიშვნელობები რჩება თქვენს მოწყობილობაზე.

UUID v4: 122 ბიტიანი შემთხვევითობის ფორმატი

UUID v4 (Universally Unique Identifier, ვერსია 4) წარმოადგენს 16 ოქტეტისაგან შემდგარ მონაცემთა ბლოკს, სადაც 122 ბიტი განისაზღვრება სრულიად შემთხვევით, ხოლო 6 ბიტი – სტანდარტით გათვალისწინებული ვერსიისა და ვარიანტის იდენტიფიკატორებისთვის. შედეგად მივიღებთ 36-სიმბოლოიან ტექსტურ სტრიქონს, რომელიც გამოისახება 32 თექვსმეტობითი ციფრით (hex) და 4 დეფისით. ფორმატი 8‑4‑4‑4‑12 აღნიშნავს, რომ ჯერ მოდის 8, შემდეგ 4, 4, 4 და ბოლოს 12 hex სიმბოლო, თითოეული ჯგუფი გამოყოფილია დეფისით. მაგალითად: 550e8400-e29b-41d4-a716-446655440000.

ვინაიდან UUID v4-ში არ გამოიყენება დროის შტამპი, ყოველი გენერირებული მნიშვნელობა პრაქტიკულად არაპროგნოზირებადია. კოლიზიის (ორი იდენტური UUID-ის წარმოქმნის) ალბათობა 122 ბიტიანი შემთხვევითი სივრცის გამო უმნიშვნელოა – ის იმდენად მცირეა, რომ ერთი მანქანაზე მილიარდობით UUID-ის გენერირებისასაც კი, ორი ერთნაირი ID-ს მიღების შანსი პრაქტიკულად ნულის ტოლია. ეს მახასიათებელი განსაკუთრებით მნიშვნელოვანია უსაფრთხოების ტოკენების, სესიის იდენტიფიკატორებისა და ანონიმური გასაღებებისათვის, სადაც დროის მიხედვით დალაგებას მნიშვნელობა არ აქვს, მაგრამ უნიკალურობა და გამოცნობის სიძნელე კრიტიკულია.

რა ხდის ამ გვერდს განსხვავებულს?

პირველ რიგში, ეს გვერდი გამოიმუშავებს UUID v4 იდენტიფიკატორებს მხოლოდ თქვენს ბრაუზერში, ძლიერი ბრაუზერული შემთხვევითობის (strong browser randomness) გამოყენებით. არანაირი მონაცემი არ იგზავნება სერვერზე, რაც უზრუნველყოფს კონფიდენციალურობის მაღალ დონეს: ვერც ჩვენ, ვერც მესამე მხარეებმა ვერ გავიგებთ, რომელი ID-ები გამოიმუშავეთ.

მეორე, UUID v4-თან დაკავშირებულია მნიშვნელოვანი ტექნიკური ნიუანსი: ვინაიდან ის დროს არატარებს, ID-ები ილაგება ნებისმიერი, შემთხვევითი თანმიმდევრობით. თუ ამ ID-ებს მონაცემთა ბაზაში პირველად გასაღებად (primary key) გამოიყენებთ, ისინი ინდექსის ფრაგმენტაციას იწვევს, რადგან ახალი ჩანაწერები შეიძლება ინდექსის ნებისმიერ ადგილას ჩაჯდეს. ეს ანელებს ჩასმის ოპერაციებს. ცხრილში ქვემოთ ნაჩვენებია, როგორ განსხვავდება UUID v4 UUID v7-ისა და ULID-ისგან:

ტიპი დროის შტამპი ინდექსის დალაგება კოლიზიის რისკი
UUID v4 არა შემთხვევითი უმნიშვნელო
UUID v7 კი დროის მიხედვით ძალიან დაბალი
ULID კი დროის მიხედვით ძალიან დაბალი

ამ გვერდზე შეგიძლიათ ჩართოთ/გამორთოთ uppercase-ის რეჟიმი (ნაგულისხმევი არის lowercase) და hyphens (ნაგულისხმევი – ჩართული). როგორც კი რომელიმე პარამეტრს შეცვლით, მთელი ნაკრები ხელახლა გენერირდება. ნაგულისხმევი გამომავალი არის lowercase, hyphens-ის ჩართვით.

შეყვანის პარამეტრები: count, uppercase, hyphens

გვერდზე შეგიძლიათ მიუთითოთ UUID-ების რაოდენობა – count. ის უნდა იყოს 1-დან 100-ის ჩათვლით. თუ ცდილობთ 0-ის ან 101-ის შეყვანას, ინსტრუმენტი არ გაძლევთ საშუალებას – ლიმიტი მკაცრად გაწერილია.

Uppercase ტოგლი: როდესაც ჩართულია, ყველა hex სიმბოლო გამოისახება მაღალ რეგისტრში (A–F). ნაგულისხმევად ის გამორთულია. ამას მნიშვნელობა აქვს, როდესაც ID-ები იკითხება ადამიანის მიერ – uppercase-ში ისინი უფრო გამორჩეულად გამოიყურება, მაგრამ ორივე ფორმა ექვივალენტურია.

Include hyphens ტოგლი: ჩართვის შემთხვევაში, UUID გამოისახება 8‑4‑4‑4‑12 ფორმატში. გამორთვის შემდეგ ID იქნება 32 hex სიმბოლოსაგან შემდგარი უწყვეტი სტრიქონი (მაგ. 550e8400e29b41d4a716446655440000). ეს გამოსადეგია სისტემებისთვის, რომლებიც ვერ იღებენ დეფისებს, ან იმ შემთხვევაში, როდესაც ID-ს შენახვა სჭირდება მინიმალური ზომით.

მნიშვნელოვანი წესი: როგორც კი ცვლით count-ს, uppercase-ს ან hyphens-ს, ID-ები ხელახლა იქმნება. ეს ნიშნავს, რომ თუ ერთხელ უკვე გენერირებული ID-ები იყო და თქვენ მხოლოდ uppercase-ის ჩართვა გინდათ, ძველი ID-ები დაიკარგება – ახალი, სხვადასხვა ID-ები გამოჩნდება. თუ გსურთ იგივე ID-ების uppercase-ში ნახვა, უნდა გახსოვდეთ, რომ ტოგლის ცვლილება ყოველთვის იწვევს ხელახლა გენერაციას.

გამომავალი მონაცემები: ID-ები, კოპირების მექანიზმი

გენერაციის შემდეგ ეკრანზე გამოჩნდება ID-ების სია. ყოველი UUID v4 ნაჩვენებია ცალკე სტრიქონზე. სიის ზემოთ ან ქვემოთ მიეთითება ID-ების რაოდენობა (მაგალითად "50 IDs").

სტატუსის შეტყობინებები:

  • "Ready." – საწყისი მდგომარეობა, როდესაც ჯერ არ გენერირებულა.
  • "Generated." – გენერაციის დასრულებისთანავე.
  • "Copied all!" – როდესაც "Copy all" ღილაკი გამოიყენება.

კოპირების გზები:

  1. ინდივიდუალური ID-ის კოპირება: დააწკაპუნეთ ნებისმიერ ID-ზე – ის მყისიერად გადავა ბუფერში.
  2. ყველა ID-ის ერთდროულად კოპირება: გამოიყენეთ "Copy all" ღილაკი – ბუფერში მოხვდება ყველა ID, ერთი ცვლადი ან ცალ-ცალკე (დამოკიდებულია ინტერფეისზე).

უსაფრთხოება: ლოკალური გენერაცია, Strong Browser Randomness

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

  • არ ხდება API-ს გამოძახება სერვერზე.
  • ვერც Google, ვერც ჩვენ, ვერც თქვენ ინტერნეტ პროვაიდერი ვერ ხედავთ გენერირებულ ID-ებს.
  • ინსტრუმენტი მუშაობს ოფლაინ რეჟიმშიც – საკმარისია, გვერდი ერთხელ ჩაიტვირთოს.

Strong browser randomness – ეს არის crypto.getRandomValues() მეთოდი, რომელიც უზრუნველყოფს 256-ბიტიან ან უფრო მაღალ შემთხვევითობას. UUID v4-ის 122 ბიტიანი შემთხვევითი ნაწილი ამ მექანიზმიდან იღებს წყაროს. ეს მეთოდი იმდენად ძლიერია, რომ მისი გამოყენება უსაფრთხოების კრიტიკულ აპლიკაციებშიც კი რეკომენდებულია.

UUID v4 vs. UUID v7 vs. ULID: დროისა და ინდექსაციის გავლენა

UUID v4-ის მთავარი უარყოფითი მხარე მონაცემთა ბაზაში ინდექსის ფრაგმენტაციაა. აი, როგორ მუშაობს ეს:

  • UUID v4: 122 ბიტი შემთხვევითი; ID-ები არ ილაგება დროის მიხედვით. B‑tree ინდექსში ჩასმა იწვევს გვერდების ხშირ გაყოფას.
  • UUID v7: 60 ბიტი დროის შტამპისთვის, 62 ბიტი შემთხვევითი. ID-ები ილაგება დროის მიხედვით, ამიტომ ინდექსი ნაკლებად ფრაგმენტირდება.
  • ULID: 48 ბიტი დროისათვის, 80 ბიტი შემთხვევითი. ანალოგიურად ილაგება, მაგრამ იყენებს Crockford-ის Base32-ს.

პრაქტიკული რჩევა: თუ თქვენი მონაცემთა ბაზა იყენებს UUID-ებს, მაგრამ ინდექსის ფრაგმენტაცია პრობლემაა, განიხილეთ UUID v7-ზე ან ULID-ზე გადასვლა. UUID v4-ს იყენებენ იქ, სადაც უსაფრთხოება, გამოცნობის სიძნელე უფრო მნიშვნელოვანია, ვიდრე ჩასმის სიჩქარე.

FAQ: ხშირად დასმული კითხვები

1. რა არის 122 ბიტიანი შემთხვევითობა UUID v4-ში?
UUID v4-ის 16 ოქტეტისაგან 122 ბიტი განისაზღვრება შემთხვევით. 2 ბიტი გამოიყენება UUID-ის ვერსიისთვის (4), 2 ბიტი – ვარიანტისთვის (10xx), 1 ბიტი დაცულია. ეს 122 ბიტი იძლევა 2^122 ≈ 5.3×10^36 უნიკალურ მნიშვნელობას.

2. რა არის "Copy all" ღილაკის ფუნქცია?
ის ერთდროულად აკოპირებს ყველა გენერირებულ UUID-ს ბუფერში. მაგალითად, 50 ID-ის გენერირებისას, ერთი დაწკაპუნებით მათი ყველა 50-ვე ID ხელმისაწვდომი იქნება ჩასასმელად.

3. რატომ იცვლება ID-ები, როცა uppercase ან hyphens ტოგლს ვცვლი?
ეს არის ინსტრუმენტის ქცევის მახასიათებელი: ნებისმიერი პარამეტრის შეცვლა იწვევს ID-ების ხელახლა გენერაციას. ამიტომ, თუ გსურთ იგივე ID-ების uppercase-ში ნახვა, ჯერ გენერირეთ, შემდეგ ხელით შეუცვალეთ регистр.

4. რა მაქსიმალური რაოდენობის UUID-ების გენერირება შემიძლია?
100 ID-მდე. 101-ის ჩაწერა არ იქნება მიღებული. 1-დან 100-ის ჩათვლით – ნებისმიერი მთელი მნიშვნელობა.

5. იგზავნება თუ არა ჩემი ID-ები სერვერზე?
არა. მთელი გენერაცია ხდება მხოლოდ ბრაუზერში, crypto.getRandomValues()-ის გამოყენებით. ვერც ჩვენ ვხედავთ ID-ებს.

6. აქვს თუ არა UUID v4-ს რაიმე გავლენა მონაცემთა ბაზის მუშაობაზე?
დიახ, როდესაც UUID v4 გამოიყენება primary key-ად, ის იწვევს ინდექსის ფრაგმენტაციას, რაც ანელებს INSERT-ის ოპერაციებს. ეს ხდება ID-ების შემთხვევითი, დაულაგებელი განაწილების გამო. თუ ეს პრობლემაა, განიხილეთ time‑based UUID (v7) ან ULID.

ვის სჭირდება UUID v4-ის გენერატორი?

  • დეველოპერებს, რომლებსაც სჭირდებათ უსაფრთხო, უნიკალური იდენტიფიკატორები JSON Web Token-ებში, CSRF ტოკენებში ან API-ს key-ებში.
  • მონაცემთა ბაზის ადმინისტრატორებს, რომლებმაც იციან UUID v4-ის ინდექსის ფრაგმენტაციის უარყოფითი მხარე, მაგრამ მაინც იყენებენ მას, როდესაც უნიკალურობა და გამოცნობის სიძნელე პრიორიტეტულია.
  • ტესტერებს, რომლებიც ამზადებენ ტესტ მონაცემებს – 100 ID-ის ერთდროულად გენერირება მოსახერხებელია.
  • ნებისმიერ მომხმარებელს, ვისაც სჭირდება ანონიმური, უნიკალური იდენტიფიკატორების პარტია ლოკალურად, ლიცენზიების, ანგარიშების ID-ების ან პროექტის Key-ებისათვის.