Penjana UUID

Tambah ke situs Metainformasi

Alat lain

Jana UUID/GUID

Jana UUID/GUID

Pengecam Unik Sejagat (UUID), juga dikenali sebagai Pengecam Unik Global (GUID), telah digunakan secara meluas dalam sistem komputer.

Ia ialah kod 128-bit yang dijana oleh sistem berdasarkan pembolehubah dan pemalar: masa semasa, alamat MAC, cincang SHA-1, ruang nama MD5. Hasil akhir penjanaan UUID, dipaparkan sebagai kod alfanumerik 32 aksara yang dipisahkan oleh tanda sempang, mungkin kelihatan sewenang-wenangnya, tetapi sebenarnya ia adalah hasil pengiraan yang rumit. Oleh itu, komputer tidak "mencipta" kod, tetapi membentuknya daripada kuantiti teknikal tertentu yang relevan pada masa tertentu.

Kebarangkalian bahawa UUID yang sama akan dijana pada dua komputer berbeza pada masa yang berbeza cenderung kepada sifar, yang memungkinkan untuk menggunakan kod yang terhasil untuk pengenalan data titik/tempatan tanpa merujuk kepada pusat koordinasi. Hari ini, UUID/GUID terdapat di mana-mana dalam rangkaian dalam talian dan luar talian, dan berfungsi dengan berkesan bukan sahaja dalam ruang Internet global, tetapi juga dalam sistem komputer kendiri.

Sejarah UUID

Kod UUID 128-bit pertama kali digunakan oleh syarikat Amerika Apollo Computer pada tahun 1980-an. Ia berdasarkan kod 64-bit yang lebih ringkas yang digunakan dalam Domain/OS dan didapati digunakan secara meluas dalam persekitaran pengkomputeran Open Software Foundation.

Dengan kemunculan platform Windows pertama, pengecam unik di peringkat global telah digeneralisasikan dan diseragamkan. Microsoft mengguna pakai reka bentuk DCE daripada Apollo Computer dan mendaftarkan ruang nama URN dalam RFC 4122. Pada tahun 2005, yang terakhir telah dicadangkan sebagai piawaian baharu oleh IETF dan UUID telah diseragamkan dalam ITU.

Awal tahun 2002, isu prestasi sistem telah dikenal pasti apabila menggunakan UUID sebagai kunci utama dalam pangkalan data tempatan. Ini telah ditetapkan dalam versi 4 dengan menambahkan akhiran bukan rawak berdasarkan masa sistem komputer. Pendekatan yang dipanggil COMB (Pengenal Masa GUID Gabungan) meningkatkan risiko pertindihan kod, tetapi pada masa yang sama meningkatkan prestasi dengan ketara apabila bekerja dengan Microsoft SQL Server.

Dengan perkembangan teknologi IT, pengecam unik universal tidak lagi menjadi alat teknikal yang sangat khusus dan hari ini semua orang boleh menggunakannya. Kebarangkalian pengulangan kod yang dijana tidak sama dengan sifar, tetapi cenderung kepadanya, dan sebarang maklumat digital boleh dikenal pasti oleh mereka, selepas itu ia boleh digabungkan menjadi tatasusunan data tunggal dengan risiko pengulangan yang minimum.

Faedah UUID

Penjana kod unik global tidak memerlukan penyelarasan/penyegerakan data terpusat dan tersedia secara percuma kepada semua pengguna. Kelebihan utama UUID termasuk:

  • Risiko minimum "perlanggaran" (pengulangan) kod. Walaupun penggunaannya secara besar-besaran, kebarangkalian pengulangan cenderung kepada sifar.
  • Keupayaan untuk menyertai tatasusunan data yang berbeza menggunakan UUID sebagai kunci utama (unik).
  • Pengagihan data yang dipermudahkan merentas berbilang pelayan yang tersebar.
  • Keupayaan untuk menjana kod luar talian.

Kod pengenalan unik, yang ditulis dalam format xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx, membenarkan sistem tersebar mengenali maklumat tanpa penyelarasan dari pusat data tunggal: dengan hampir sifar kebarangkalian ralat / pengulangan. Ciri ini, bersama-sama dengan kemudahan penggunaan dan keperluan kecil untuk prestasi komputer, menjadikan UUID dalam permintaan dan amat diperlukan dalam pelbagai jenis industri IT dan sistem pengkomputeran autonomi.

Pengenalan unik universal

Pengenalan unik universal

UUID boleh menjana kod menggunakan algoritma dan pembolehubah/nilai malar yang berbeza.

Terdapat 5 versi pengecam secara keseluruhan, menggunakan tarikh/masa sistem dan alamat MAC, protokol keselamatan DCE, cincang MD5, cincang SHA-1 dan ruang nama apabila dijana.

Dalam semua kes, hasil akhir dipaparkan dalam format xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx (notasi dalam tatatanda heksadesimal, yang terdiri daripada huruf Latin dan nombor kecil, dan dibahagikan dengan sempang kepada lima blok: 8-4 -4-4- 12), M bermaksud versi, N bermaksud varian UUID.

Oleh itu, sistem menggunakan 36 aksara pada satu masa (26 huruf dan 10 nombor), jadi kebarangkalian untuk mengulangi kod 32 digit cenderung kepada sifar, walaupun pada hakikatnya ia dijana setiap hari oleh berjuta-juta pengguna di seluruh dunia.

Versi UUID

Versi 1

Versi pertama pengecam unik, apabila menjana kod, adalah berdasarkan alamat MAC komputer dan masa sistemnya, yang menukar nilai berangkanya 1 kali sesaat. Proses penjanaan terdiri daripada lima peringkat:

  • Maklumat 32 bit yang lebih rendah diambil daripada teg UTC. Ia ditukar kepada 8 aksara perenambelasan dan mengambil 4 bait.
  • Purata 16 bit maklumat diambil daripada label UTC yang sama dan ditukarkan kepada 4 aksara perenambelasan yang menduduki 2 bait.
  • 12 bit maklumat atas daripada teg UTC diambil dan ditukar kepada 4 lagi aksara perenambelasan.
  • 1-3 bit lagi jatuh pada jujukan jam dan mengurangkan risiko perlanggaran dengan memperkenalkan tahap rawak / ketidakpastian. Masa sistem sama ada diperlahankan secara bersyarat atau ditetapkan semula - supaya dua atau lebih pengecam yang berfungsi pada komputer yang sama pada masa yang sama tidak "bersilang".
  • Baki 6 bait ialah nilai malar yang dijana berdasarkan alamat MAC peranti. Ia terdiri daripada 12 aksara heksadesimal dan bersaiz 48 bit.

Oleh kerana algoritma versi pertama UUID berkait rapat dengan masa sistem, penggunaan jujukan jam adalah wajib. Jika tidak, risiko menjana kod yang sama meningkat berkali-kali ganda - semasa detik apabila masa sistem "membeku" pada satu atau nilai lain.

Versi 2

Versi kedua adalah sedikit berbeza daripada yang pertama, dan jarang digunakan dalam amalan. Daripada urutan jam, ia menggunakan pengecam sistem yang terikat pada data pengguna atau nilai unik lain yang tidak diulang pada komputer lain atau diulang sangat jarang. Kesan rawak dalam versi kedua diminimumkan dan ia boleh digunakan untuk meningkatkan keselamatan persekitaran pengkomputeran teragih.

Versi 3 dan 5

Mereka mempunyai banyak persamaan: mereka menggunakan nama dan nama unik (dari ruang MD5) untuk mencipta kod, iaitu, nilai bukan rawak. Hanya versi 3 menggunakan cincang standard, manakala versi 5 menggunakan cincang SHA-1. Pengecam sedemikian kurang bergantung pada pembolehubah rawak.

Versi 4

Penjanaan versi UUID ini lebih daripada 90% rawak. Ia mempunyai 6 bit untuk nilai malar dan 122 untuk nilai sewenang-wenangnya. Pelaksanaan algoritma ialah 128 bit maklumat pertama kali dijana secara rawak, dan 6 daripadanya digantikan oleh data versi dan varian.

Peranan penjana nombor pseudo-rawak dalam versi keempat adalah maksimum, dan jika ia mempunyai algoritma yang terlalu mudah, risiko pengulangan/perlanggaran meningkat dengan ketara. Walaupun begitu, ia adalah versi keempat yang paling biasa dan sering digunakan dalam amalan.

Pilihan UUID

UID unik telah diperhalusi beberapa kali apabila teknologi komputer telah berkembang, dan hari ini ia dibentangkan dalam beberapa versi.

Pilihan 0

Direka bentuk untuk berfungsi dengan pangkalan data berformat Apollo Network Computing System 1.5 1988 warisan. Pilihan ini serasi ke belakang dengannya dan tidak bercanggah dengan UUID sejarah NCS.

Pilihan 1 dan 2

Digunakan untuk mengenal pasti blok dan tatasusunan data moden, dan dalam bentuk teks kanonik ia tidak berbeza antara satu sama lain, kecuali untuk susunan penulisan bit varian. Jadi pilihan 1 menggunakan susunan byte big-endian, dan pilihan 2 menggunakan title-endian. Yang pertama ialah yang utama, dan yang kedua dikhaskan untuk bekerja dengan GUID awal daripada Microsoft Windows.

Pilihan 3

Pada masa ini tidak digunakan. Ia adalah versi terpelihara untuk kegunaan masa hadapan - apabila kemungkinan pilihan sebelumnya telah habis.

Kebanyakan sistem mengekod pengecam dalam big-endian, tetapi terdapat pengecualian. Sebagai contoh, penggabungan dalam perpustakaan Microsoft COM/OLE menggunakan campuran-endian semasa menjana kod daripada blok tajuk-endian dan besar-endian. Yang pertama ialah tiga komponen pertama UUID dan yang kedua ialah dua yang terakhir.