ULID и Nano ID генератор
Генерирајте ULID (со монотона опција) или Nano ID со сопствена азбука и должина, во количина, декодирајте временска ознака од ULID и проверете судир.
Веројатност за судир
- Големина на азбуката
- —
- Ентропија по ID
- —
- Можни ID
- —
- ID за 1% шанса за дупликат
- —
- Време до тој 1% ризик
- —
Декодирање на ULID
- Временска ознака (UTC, ISO 8601)
- Локален датум и време
- Unix време (ms)
- Случаен дел (80 бита, хекс)
Како да генерирате ULID или Nano ID
- Под Тип на ID изберете ULID (подредлив) или Nano ID (краток).
- Поставете Колку (од 1 до 1.000). Десет ID се генерираат штом се вчита страницата.
- За ULID, оставете штиклирано Монотон (строго растечки) за ID создадени во иста милисекунда сепак да се подредуваат по редослед, и штиклирајте Мали букви ако вашиот систем го претпочита тоа.
- За Nano ID, изберете Азбука (или Сопствена… и впишете свои знаци) и Должина.
- Кликнете Генерирај, па Копирај ја листата или Преземи (.txt, по еден ID во ред).
За да го прочитате датумот скриен во ULID, залепете го под Декодирање на ULID или кликнете Декодирај го првиот ID. Алатката ја покажува временската ознака во UTC (ISO 8601), во вашето локално време, како Unix милисекунди и 80-битниот случаен дел во хекс.
Што е ULID?
ULID (Universally Unique Lexicographically Sortable Identifier) е 128-битен идентификатор запишан како 26 знаци Crockford Base32, на пример 01ARZ3NDEKTSV4RRFFQ69G5FAV. Првите 10 знаци кодираат 48-битна временска ознака во милисекунди (доволно до 10889 година); последните 16 знаци се 80 случајни бита. Crockford Base32 ги изоставува I, L, O и U за да се избегне забуна, а декодирањето не прави разлика меѓу големи и мали букви.
Бидејќи времето е на почетокот, ULID се подредуваат азбучно по редослед на создавање. Тоа ги прави добри примарни клучеви: новите редови се додаваат на крајот од B-tree индексот наместо да се расфрлаат како случајните UUID, а можете да подредувате по ID наместо по посебна колона со датум.
Монотон режим. Во рамките на една милисекунда, случајните ULID би се подредувале по случаен редослед. Со монотоната опција, алатката ја следи спецификацијата на ULID: кога повеќе ID се создаваат во иста милисекунда, ја задржува временската ознака и му додава 1 на претходниот случаен дел. Ако часовникот оди наназад, ја задржува последната временска ознака, па низата никогаш не опаѓа.
Имајте предвид дека ULID открива кога е создаден. Не користете го таму каде што таа информација е чувствителна.
Што е Nano ID?
Nano ID е компактен случаен идентификатор. Основниот е 21 знак од 64-знаковна азбука безбедна за URL (A–Z a–z 0–9 _ -), што дава 126 случајни бита, слично на UUID v4 (122 бита) во помалку знаци. Можете да изберете хексадецимална, само цифри, мали букви и цифри, алфанумеричка, множество без слични знаци (без 0/O, 1/l/I, 5/S…) за кодови што луѓето ги впишуваат или сопствена азбука од 2 до 256 знаци. Дупликатните знаци во сопствена азбука се отстрануваат, бидејќи некои знаци би станале поверојатни.
Секој знак се влече со crypto.getRandomValues со отфрлачко земање примероци, па нема пристрасност од модул.
Веројатност за судир
Панелот Веројатност за судир го применува ограничувањето на роденденскиот парадокс. Со азбука со големина A и должина L има N = A^L можни ID. По k ID, шансата за најмалку еден дупликат е околу 1 − e^(−k²/2N), па ризик од 1% се достигнува по k ≈ √(2N · ln(1/0,99)) ID. Внесете ID генерирани на час за да видите колку време би требало. Со основните поставки и 1.000 ID на час, за ризик од 1% треба околу 149 милијарди години; со 8 хексадецимални знаци тоа се само околу 9.300 ID.
Често поставувани прашања
ULID или UUID?
И двата се 128 бита. ULID е покус за пишување (26 знаци наместо 36) и се подредува по време. UUID верзија 7 сега нуди исто временско подредување во стандарден UUID формат, што базите често го чуваат природно. Изберете UUID v7 ако вашиот стек го поддржува, ULID ако сакате компактен, читлив стринг.
Дали ULID и Nano ID се доволно безбедни за токени?
Nano ID со основна азбука и должина имаат 126 случајни бита од криптографски генератор, што е доволно за непогодливи врски. ULID имаат само 80 случајни бита, а во монотон режим последователните ID се разликуваат за еден, па не користете ULID како тајни.
Можам ли да скратам Nano ID?
Да, но ризикот од судир расте многу брзо. Проверете ја вредноста ID за 1% шанса за дупликат за вашата должина и азбука пред да се потпрете на краток ID.
Зошто декодерот го одбива мојот ULID?
ULID мора да има точно 26 знаци, да користи само знаци од Crockford Base32 и да почнува со 0 до 7 (поголем прв знак би ги надминал 128-те бита).
Дали ID се чуваат или испраќаат некаде?
Не. Се генерираат во вашиот прелистувач и исчезнуваат кога ќе ја напуштите страницата.
Поврзани алатки
- UUID генератор Бесплатен UUID генератор за верзија 4 и верзија 7. Создајте до 1.000 одеднаш, со големи букви или без цртички, па копирајте или преземете како .txt.
- Генератор на лозинки Бесплатен генератор што создава јаки случајни лозинки од 4 до 128 знаци во вашиот прелистувач со безбеден генератор. Ништо не се зачувува ниту испраќа.
- Претворач на Unix временска ознака Претворете Unix временски ознаки во секунди или милисекунди во читливи датуми во локално време, UTC и ISO 8601, а секој датум вратете го во epoch време.