ULID- ja Nano ID -generaattori
Luo ULID-tunnisteita (monotoninen vaihtoehto) tai Nano ID -tunnisteita omalla merkistöllä ja pituudella, pura ULID:n aikaleima ja arvioi törmäysriski.
Törmäystodennäköisyys
- Merkistön koko
- —
- Entropia tunnistetta kohti
- —
- Mahdolliset tunnisteet
- —
- Tunnisteita, joilla kaksoiskappaleen todennäköisyys on 1 %
- —
- Aika tämän 1 %:n riskin saavuttamiseen
- —
Pura ULID
- Aikaleima (UTC, ISO 8601)
- Paikallinen päivämäärä ja kellonaika
- Unix-aika (ms)
- Satunnaisosa (80 bittiä, heksa)
Näin luot ULID- tai Nano ID -tunnisteita
- Valitse kohdassa Tunnisteen tyyppi ULID (järjestyvä) tai Nano ID (lyhyt).
- Aseta Kuinka monta (1–1 000). Kymmenen tunnistetta luodaan heti sivun latauduttua.
- ULID:ille jätä Monotoninen (tiukasti kasvava) valituksi, jotta samassa millisekunnissa luodut tunnisteet järjestyvät silti oikein, ja valitse Pienet kirjaimet, jos järjestelmäsi suosii niitä.
- Nano ID:ille valitse Merkistö (tai Oma… ja kirjoita omat merkkisi) ja Pituus.
- Napsauta Luo ja sitten Kopioi lista tai Lataa-painikkeella .txt-tiedosto (yksi tunniste riviä kohti).
Jos haluat lukea ULID:iin kätketyn päivämäärän, liitä se kohtaan Pura ULID tai napsauta Pura ensimmäinen tunniste. Työkalu näyttää aikaleiman UTC-aikana (ISO 8601), paikallisena aikana ja Unix-millisekunteina sekä 80-bittisen satunnaisosan heksana.
Mikä on ULID?
ULID (Universally Unique Lexicographically Sortable Identifier) on 128-bittinen tunniste, joka kirjoitetaan 26 merkillä Crockfordin Base32:ta, esimerkiksi 01ARZ3NDEKTSV4RRFFQ69G5FAV. Ensimmäiset 10 merkkiä koodaavat 48-bittisen aikaleiman millisekunteina (riittää vuoteen 10889 asti); viimeiset 16 merkkiä ovat 80 satunnaista bittiä. Crockfordin Base32 jättää pois kirjaimet I, L, O ja U sekaannusten välttämiseksi, ja purku ei erottele kirjainkokoja.
Koska aika tulee ensin, ULID:t järjestyvät aakkosjärjestyksessä luontijärjestykseen. Siksi ne sopivat hyvin pääavaimiksi: uudet rivit lisätään B-puuindeksin loppuun sen sijaan, että ne hajaantuisivat satunnaisten UUID:iden tapaan, ja voit järjestää tunnisteen mukaan erillisen päivämääräsarakkeen sijaan.
Monotoninen tila. Yhden millisekunnin sisällä satunnaiset ULID:t järjestyisivät satunnaiseen järjestykseen. Monotonisella asetuksella työkalu noudattaa ULID-määrittelyä: kun useita tunnisteita luodaan samassa millisekunnissa, aikaleima säilytetään ja edelliseen satunnaisosaan lisätään 1. Jos kello menee taaksepäin, viimeinen aikaleima säilytetään, joten jono ei koskaan pienene.
Muista, että ULID paljastaa luontihetkensä. Älä käytä sitä paikassa, jossa tämä tieto on arkaluonteinen.
Mikä on Nano ID?
Nano ID on tiivis satunnainen tunniste. Oletuksena se on 21 merkkiä 64-merkkisestä URL-turvallisesta merkistöstä (A–Z a–z 0–9 _ -), mikä antaa 126 satunnaista bittiä, eli samaa luokkaa kuin UUID v4 (122 bittiä) vähemmillä merkeillä. Voit valita heksadesimaalin, vain numerot, pienet kirjaimet ja numerot, aakkosnumeerisen, merkistön ilman sekoitettavia merkkejä (ei 0/O, 1/l/I, 5/S…) ihmisten kirjoittamiin koodeihin tai oman 2–256 merkin merkistön. Oman merkistön kaksoiskappaleet poistetaan, koska ne tekisivät joistakin merkeistä todennäköisempiä.
Jokainen merkki arvotaan funktiolla crypto.getRandomValues hylkäysotannalla, joten modulo-vinoumaa ei ole.
Törmäystodennäköisyys
Törmäystodennäköisyys-paneeli soveltaa syntymäpäiväparadoksin rajaa. Kun merkistön koko on A ja pituus L, mahdollisia tunnisteita on N = A^L. K tunnisteen jälkeen todennäköisyys vähintään yhdelle kaksoiskappaleelle on noin 1 − e^(−k²/2N), joten 1 %:n riski saavutetaan, kun k ≈ √(2N · ln(1/0,99)) tunnistetta. Anna Luotuja tunnisteita tunnissa nähdäksesi, kuinka kauan se kestäisi. Oletusasetuksilla ja 1 000 tunnisteella tunnissa 1 %:n riskiin menee noin 149 miljardia vuotta; 8 heksadesimaalimerkillä vain noin 9 300 tunnistetta.
Usein kysytyt kysymykset
ULID vai UUID?
Molemmat ovat 128-bittisiä. ULID on lyhyempi kirjoittaa (26 merkkiä 36:n sijaan) ja järjestyy ajan mukaan. UUID-versio 7 tarjoaa nykyään saman aikajärjestyksen vakio-UUID-muodossa, jota tietokannat usein tallentavat natiivisti. Valitse UUID v7, jos teknologiapinosi tukee sitä, ja ULID, jos haluat tiiviin, luettavan merkkijonon.
Ovatko ULID ja Nano ID riittävän turvallisia tunnuksiksi?
Nano ID:llä oletusmerkistöllä ja -pituudella on 126 satunnaista bittiä kryptografisesta generaattorista, mikä riittää arvaamattomiin linkkeihin. ULID:llä on vain 80 satunnaista bittiä, ja monotonisessa tilassa peräkkäiset tunnisteet eroavat yhdellä, joten älä käytä ULID:ita salaisuuksina.
Voinko lyhentää Nano ID:tä?
Voit, mutta törmäysriski kasvaa hyvin nopeasti. Tarkista pituutesi ja merkistösi kohdalta arvo Tunnisteita, joilla kaksoiskappaleen todennäköisyys on 1 %, ennen kuin luotat lyhyeen tunnisteeseen.
Miksi purkaja hylkää ULID:ni?
ULID:ssä on oltava täsmälleen 26 merkkiä, vain Crockfordin Base32 -merkkejä, ja sen on alettava merkillä 0–7 (suurempi ensimmäinen merkki ylittäisi 128 bittiä).
Tallennetaanko tai lähetetäänkö tunnisteita minnekään?
Ei. Ne luodaan selaimessasi ja katoavat, kun poistut sivulta.
Aiheeseen liittyvät työkalut
- UUID-generaattori Ilmainen UUID-generaattori v4- ja v7-tunnisteille. Luo jopa 1 000 kerralla isoilla kirjaimilla tai ilman tavuviivoja ja lataa .txt-tiedostona.
- Salasanageneraattori Ilmainen salasanageneraattori luo vahvoja satunnaisia salasanoja, 4–128 merkkiä, selaimessasi turvallisella satunnaislukugeneraattorilla. Mitään ei tallenneta.
- Unix-aikaleimamuunnin Muunna Unix-aikaleimat sekunneista tai millisekunneista luettaviksi päivämääriksi paikallisessa ajassa, UTC:ssä ja ISO 8601 -muodossa. Muunna myös takaisin.