Alat pembangun · UUID penjana
RFC 4122 lwn RFC 9562: Perkara yang Berubah dalam 2024 UUID Standard
· Latar belakang
uuid kriptografi pelayar-apis
Dua RFC dipetik untuk UUID dan mereka tidak mengatakan perkara yang sama. Siaran ini membincangkan perkara yang RFC 9562 ditambahkan, dijelaskan dan ditamatkan berbanding dengan RFC 4122.
RFC manakah yang saya petik? — kekeliruan apabila dokumentasi dan perpustakaan merujuk standard yang berbeza
Dua RFC secara rutin disebut dalam dokumentasi UUID, dan mereka tidak menyebut perkara yang sama. RFC 4122, diterbitkan dalam 2005, mentakrifkan UUID dan lima versinya (v1 hingga v5). RFC 9562, diterbitkan dalam 2024, usang RFC 4122 sepenuhnya, menjelaskan kekaburan yang diusahakan oleh pengamal, menambah tiga versi baharu (v6, v7, v8 panduan), i. Apabila perpustakaan memetik RFC 4122, tidak salah—bahawa perpustakaan mungkin telah dikeluarkan sebelum RFC 9562 diterbitkan atau penyelenggara mungkin tidak mempunyai dokumentasi yang dikemas kini. Menyemak RFC petikan memberitahu anda apabila pustaka dikemas kini dengan ketara. Apabila menulis spesifikasi baharu atau menilai pelaksanaan, RFC 9562 ialah rujukan normatif.
Lapuk, tidak menggantikan format — semua yang sah di bawah RFC 4122 kekal sah; susun atur dan bit varian tidak berubah
RFC 9562 secara rasmi usang RFC 4122 sebagai dokumen rujukan semasa sambil mengekalkan perwakilan 128-bit yang biasa, kumpulan perenambelasan, kedudukan versi dan reka letak varian utama. Rentetan UUID yang tersimpan sedia ada tidak perlu dikeluarkan semula sahaja kerana RFC yang lebih baharu wujud. Penghijrahan praktikal adalah dalam dokumentasi, penjana dan dasar pengesahan: sebutkan standard semasa, fahami versi yang ditambah dan semak sama ada kod lama bergantung pada kesamaran yang dijelaskan oleh semakan. Keserasian masih perlu diuji di sempadan sistem, terutamanya apabila perpustakaan mensiri struktur Microsoft GUID atau menguatkuasakan set versi yang lebih sempit daripada yang diterangkan oleh standard.
Tiga versi baharu — v6 (masa disusun semula), v7 (disusun masa zaman Unix) dan v8 (ditentukan pelaksanaan)
RFC 9562 menambah tiga versi baharu pada standard. Versi 6 menyusun semula bit cap masa v1 untuk menghasilkan pengecam boleh diisih secara leksikografi untuk prestasi pangkalan data yang lebih baik. Versi 7 menggunakan cap waktu milisaat Unix 48-bit diikuti dengan bit rawak, menyediakan penjanaan tertib masa tanpa kebimbangan privasi v1. Versi 8 ialah pintu keluar untuk reka letak yang ditentukan pelaksanaan. Tiada satu pun daripada versi ini mengubah cara v1-v5 berfungsi atau maksudnya. Satu v1 UUID daripada 2005 dan v7 UUID daripada 2024 boleh wujud bersama dalam pangkalan data yang sama, setiap satu dengan bit versinya yang mengenal pasti kaedah penjanaannya. Tiga versi baharu menangani corak biasa yang muncul dalam amalan.
Max UUID menyertai Nil — nilai semua-F yang ditakrifkan bersama nilai sifar semua
RFC 4122 mendokumenkan Nil UUID (semua bit sifar) sebagai nilai rujukan khas dalam contoh dan dokumentasi. RFC 9562 termasuk takrifan Nil yang sama tetapi secara rasmi mentakrifkan UUID Maks (semua bit ditetapkan kepada satu) untuk sempadan julat. Baik Nil mahupun Max ialah versi 4 rawak UUID kerana mereka tidak mempunyai versi dan bit varian yang betul. Max UUID berguna sebagai sempadan julat atas dalam pertanyaan pangkalan data: WHERE uuid_column <= MAX_UUID sepadan dengan semua UUID yang mungkin. Nil berguna sebagai sentinel untuk tidak ditugaskan dalam lajur UUID yang boleh batal. RFC 9562 dokumen kedua-duanya tanpa mewajibkan penggunaannya dalam data aplikasi.
Panduan yang diperjelaskan — nasihat eksplisit untuk menggunakan CSPRNG untuk medan rawak, pada pembilang monoton dalam masa milisaat dan untuk memilih versi tertib masa untuk lokasi pangkalan data
Panduan amalan terbaik RFC 9562 membezakan rintangan perlanggaran daripada kebolehtelapan. Medan rawak harus menggunakan sumber yang sesuai dengan model ancaman aplikasi dan kelegapan sensitif keselamatan memanggil CSPRNG. Penjana berasaskan masa mempunyai masalah monotonisitas yang berasingan apabila beberapa pengecam berkongsi satu tanda cap masa; piawaian menerangkan pembilang dan ketepatan cap masa tambahan sebagai kaedah yang mungkin, masing-masing dengan peraturan keadaan dan peralihan. Versi berasaskan nama kekal sebagai pengecam deterministik, bukan bukti keaslian. Penjelasan ini penting kerana satu penghurai UUID boleh menerima semua reka letak walaupun keperluan penjanaan dan sifat pendedahan maklumatnya berbeza.
Tempat idea ULID muncul — cara format komuniti mempengaruhi reka bentuk v7
RFC 9562 mengatakan pengarangnya menganalisis beberapa skema pengecam boleh diisih sedia ada, termasuk ULID, Snowflake dan KSUID, sambil membangunkan reka letak baharu. Itu menyokong kesimpulan sederhana: permintaan operasi untuk pengecam yang diedarkan mengikut masa telah memaklumkan semakan itu. Ia tidak membuktikan bahawa satu format komuniti menyumbangkan reka letak medan yang tepat kepada versi 7. Persamaan praktikal sudah cukup untuk kerja seni bina: keluarga ini meletakkan maklumat masa berhampiran bahagian hadapan supaya pesanan biasa dapat mengekalkan susunan penciptaan yang luas, kemudian berbeza dalam pengekodan, penyelarasan dan tingkah laku dalam tanda. Pilih antara mereka mengikut keserasian ekosistem dan jaminan yang didokumenkan dan bukannya tuntutan keturunan langsung.
Perkara ini tidak meliputi — perbezaan baris demi baris; siaran ini mengikuti akibat praktikal untuk pelaksana
Catatan komprehensif ini mengikuti akibat praktikal dan pelaksanaan RFC 9562 untuk pelaksana dan pengguna, bukan perbezaan baris demi baris terhadap RFC 4122. Spesifikasi penuh tersedia daripada badan piawai dan patut dibaca untuk melaksanakan pengendalian UUID dalam bahasa atau platform—teks itu memberikan perincian yang berwibawa di luar perkara yang boleh diliputi oleh gambaran keseluruhan. Siaran ini tidak menerangkan mekanik tahap bit tentang cara v6 menyusun semula bait v1 atau cara v7 mengekod Unix milisaat. Kedua-dua piawaian dan panduan pelaksanaan kekal sebagai rujukan berwibawa utama untuk sebarang soalan pelaksanaan berkenaan reka letak bit, pengekodan atau pengesahan pematuhan.
Bawa pulang: kemas kini petikan anda dan lalai anda — penjana ToolAcre mengikut panduan CSPRNG yang dikongsi oleh kedua-dua RFC
Untuk sebarang kerja baharu, kemas kini dokumentasi dan spesifikasi untuk memetik RFC 9562. Setiap UUID daripada RFC 4122 kekal sah di bawah RFC 9562—penghijrahan adalah semata-mata berpandangan ke hadapan dan bersifat pentadbiran. Panduan yang dijelaskan tentang rawak kriptografi memperkukuh bahawa pengecam mesti datang daripada sumber selamat secara kriptografi dalam sistem pengeluaran. ToolAcre mengikuti panduan rawak kriptografi daripada kedua-dua RFC, menggunakan Web Crypto API secara eksklusif. Apabila anda menemui UUID daripada log, eksport pangkalan data atau API respons, ToolAcre cek yang dibentuk dengan baik melaporkan versi dan variannya terhadap RFC 9562. RFC 9562 ialah penjelasan dan pemodenan standard yang sudah stabil.