UUID జనరేటర్

మీ బ్రౌజర్‌లో UUID లను జనరేట్ చేయండి: రాండమ్ v4, డేటాబేస్ కీల కోసం సమయ క్రమంలో పేర్చబడే v7, లేదా డిటర్మినిస్టిక్ v5. ఒకేసారి 1000 వరకు, పరికరాన్ని వదిలి డేటా వెళ్ళదు.

ఎంచుకోవడానికి 'సృష్టించు' నొక్కండి
వెర్షన్
అధునాతన ఎంపికలు

ఎవరైనా వేరే వ్యక్తులు సృష్టించిన దానితో ఎప్పుడూ ఘర్షణ పడని, మీరు ఎప్పుడూ వినని ఒక యంత్రంపై రూపొందించబడిన, మరియు ఎవరి అనుమతి కోసం అడగాల్సిన అవసరం లేని ఒక ఐడెంటిఫైయర్ మీకు అవసరమా? ఆ పనినే ఒక UUID చేస్తుంది. ఇది ఒక 128-బిట్ సంఖ్య, పరిచయం ఉన్న 8-4-4-4-12 అమరికలో 36 అక్షరాలుగా రాయబడుతుంది, మరియు ఎవరికి ఏది అందుతుందో దేనిచే సమన్వయం చేయబడకపోయినప్పటికీ, వాటిలో ఏ రెండూ ఒకేలా ఉండవన్నదే దీని పూర్తి రూపకల్పన ఉద్దేశం. ఈ ఉచిత జనరేటర్ వాటిని మీ బ్రౌజర్‌లోనే తయారుచేస్తుంది: 'వెర్షన్' లో ఒక వెర్షన్‌ని ఎంచుకోండి, 'ఎంపికల సంఖ్య' లో మీకు ఎన్ని కావాలో చెప్పండి, ఆపై 'సృష్టించు' నొక్కండి. ఈ పేజీ ఒకే v4 తో తెరుచుకుంటుంది, ఇదే ఎక్కువ ప్రాజెక్ట్‌లు కోరుకునే వెర్షన్, కాబట్టి మీ మొదటి ఐడెంటిఫైయర్ కేవలం ఒక క్లిక్ దూరంలో ఉంటుంది.

ప్రతి ఐడెంటిఫైయర్ Web Crypto API ద్వారా మీ బ్రౌజర్ చేత నిర్మించబడుతుంది. వెర్షన్ 4 బ్రౌజర్ అందించే చోట crypto.randomUUID() ని మరియు ఇతర చోట్ల crypto.getRandomValues() ని ఉపయోగిస్తుంది — ఇది Math.random() వంటి జావాస్క్రిప్ట్ నకిలీ-రాండమ్ ఫంక్షన్‌కి బదులుగా, క్రిప్టోగ్రాఫికల్‌గా బలమైన రాండమ్‌నెస్ మూలం. వెర్షన్ 7 ముందు భాగంలో ఒక 48-బిట్ మిల్లీసెకండ్ టైమ్‌స్టాంప్‌ని ఉంచుతుంది, ఆపై అదే మిల్లీసెకండ్‌లో పెరిగే ఒక 12-బిట్ కౌంటర్‌ను, ఆపై 62 రాండమ్ బిట్‌లను ఉంచుతుంది, ఇది RFC 9562 లో వివరించబడిన క్రమబద్ధీకరణ పద్ధతి; ఆ కౌంటర్ కారణంగానే వెయ్యి వాల్యూస్‌ ఉన్న ఒక బ్యాచ్ కలగలుపుగా కాకుండా ఒక క్రమంలో వస్తుంది. వెర్షన్ 1 టైమ్‌స్టాంప్‌ని మల్టీకాస్ట్ బిట్ సెట్ చేయబడిన ఒక రాండమ్ నోడ్ ఐడెంటిఫైయర్‌తో కలుపుతుంది, కాబట్టి 1990 ల నాటి అసలైన ఇంప్లిమెంటేషన్‌ల వలె ఇది మీ నెట్‌వర్క్ కార్డ్ అడ్రస్‌ను ఎప్పటికీ తీసుకువెళ్ళదు. వెర్షన్లు 3 మరియు 5 ఏమాత్రం రాండమ్ కావు: అవి MD5 మరియు SHA-1 లను ఉపయోగించి ఒక నేమ్‌స్పేస్‌ను మరియు ఒక పేరును కలిపి హ్యాష్ చేస్తాయి, మరియు ఆ హ్యాషింగ్ కూడా మీ పరికరంలోనే జరుగుతుంది. సర్వర్‌కు ఏమీ పంపబడదు, ఏదీ లాగ్ చేయబడదు, మరియు ఒకసారి పేజీ లోడ్ అయిన తర్వాత ఇంటర్నెట్ కనెక్షన్ లేకపోయినా ఇది పనిచేస్తూనే ఉంటుంది.

మిగతా వాటన్నింటినీ నిర్ణయించే ఫీల్డ్ 'వెర్షన్'. వెర్షన్ 4 అనేది 122 రాండమ్ బిట్‌లు మరియు ఎలాంటి నిర్మాణం లేనిది — ఇది డిఫాల్ట్, మరియు ఒక ఐడెంటిఫైయర్ కేవలం ప్రత్యేకంగా (unique) ఉండాల్సినప్పుడు సరైన సమాధానం. వెర్షన్ 7 కి 62 రాండమ్ బిట్‌లు ఉంటాయి కానీ అది సృష్టించబడిన సమయంతో మొదలవుతుంది, కాబట్టి వాటి సమితి (set) అవి తయారు చేయబడిన క్రమంలో పేర్చబడుతుంది; ఐడెంటిఫైయర్ ఒక డేటాబేస్ కీ గా మారబోతున్నప్పుడు దానిని ఎంచుకోవడానికి కారణం అదే. వెర్షన్ 1 అనేది అసలైన సమయం-ఆధారిత స్కీమ్, ఇది ఇప్పటికీ అడిగే సిస్టమ్‌ల కోసం ఇక్కడ ఉంచబడింది. వెర్షన్లు 3 మరియు 5 ఒక భిన్నమైన జంట: అవి డిటర్మినిస్టిక్ అనగా నిర్ణయాత్మకమైనవి, అంటే ఒకే ఇన్‌పుట్‌లు ఎప్పుడూ ఒకే ఐడెంటిఫైయర్‌ను ఉత్పత్తి చేస్తాయి, మరియు అవి రెండు అదనపు ఫీల్డ్‌లను తీసుకుంటాయి — ప్రామాణిక ప్రదేశాలైన DNS, URL, OID మరియు X.500 లేదా మీ స్వంత ఒక 'అనుకూల' ప్రదేశం అయిన 'నేమ్‌స్పేస్', మరియు గుర్తించబడుతున్న స్ట్రింగ్ అయిన 'పేరు'. v5 కి URL నేమ్‌స్పేస్ మరియు https://example.com/a ని ఇస్తే, మీకు ఈరోజూ, రేపూ మరియు వేరొకరి మెషీన్‌లోనూ ఒకే UUID వస్తుంది. ఆ కారణంగా, v3 లేదా v5 ఎంపిక చేయబడినప్పుడు 'ఎంపికల సంఖ్య' అదృశ్యమవుతుంది: ఒకే నిర్ణయాత్మక విలువకు చెందిన వెయ్యి కాపీలు కేవలం ఒకే నిర్ణయాత్మక విలువ యొక్క వెయ్యి కాపీలు మాత్రమే అవుతాయి. మిగతా ప్రతి వెర్షన్‌కూ 'ఎంపికల సంఖ్య' 1 నుండి 1000 వరకు నడుస్తుంది.

నాలుగు స్విచ్‌లు అడుగున ఉన్న 128 బిట్‌లను మార్చకుండా ఔట్‌పుట్ ఆకారాన్ని మారుస్తాయి. 'పెద్ద అక్షరాలు' హెక్సాడెసిమల్ అంకెలను పెద్ద అక్షరాలుగా ముద్రిస్తుంది, 'అడ్డుగీతలు లేకుండా' అనేది కొన్ని నిలువు వరుసలు మరియు ఫైల్ పేర్లు కోరుకునే కుదించబడిన 32-అక్షరాల రూపాన్ని ఇస్తుంది, మరియు 'వంకర కుండలీకరణాలు' విలువను { } లోపల ఉంచుతుంది — ఈ ఆకారాన్నే Windows మరియు .NET ప్రపంచం GUID అని పిలుస్తుంది. 'అధునాతన ఎంపికలు' కింద, urn:uuid: అనేది దీనిని ఒక అధికారిక URN గా మార్చే ప్రిఫిక్స్‌ను జోడిస్తుంది; ఇది ఆన్‌లో ఉన్నప్పుడు 'వంకర కుండలీకరణాలు' మరియు 'అడ్డుగీతలు లేకుండా' ఆప్షన్లను ఆఫ్ చేస్తుంది, ఎందుకంటే ప్రమాణం (standard) సరిగ్గా ఒకే ఒక URN రూపాన్ని మాత్రమే అనుమతిస్తుంది మరియు అది అడ్డుగీతలు ఉన్న కానానికల్ రూపం. మీరు ఒక బ్యాచ్‌ను తీసుకున్నప్పుడు అది ఎలా కలుపబడుతుందో 'కాపీ ఫార్మాట్' నిర్ణయిస్తుంది: ఒక్కో లైన్‌కు ఒకటిగా, కామాలచే వేరు చేయబడి, లేదా ప్రతి విలువా కొటేషన్లలో ఒక కామాతో కలిపి, ఇది నేరుగా కోడ్‌లోని ఒక ఎరేలో (array) పేస్ట్ అవుతుంది. ఫలితం కింద బిట్‌లలో రాండమ్‌నెస్‌ను నివేదించే ఒక లైన్ ఉంటుంది — v4 కి 122, v7 కి 62 — మరియు, v7 కి సంబంధించి, బ్యాచ్‌లోని మొదటి ఐడెంటిఫైయర్‌లో ఎన్‌కోడ్ చేయబడిన టైమ్‌స్టాంప్, తద్వారా విలువ లోపలి సమయం సూచనప్రాయంగా కాకుండా స్పష్టంగా కనిపిస్తుంది. 'అన్నీ కాపీ చేయండి' మరియు 'ఫైల్‌కు సేవ్ చేయండి' రెండూ 'కాపీ ఫార్మాట్' ను గౌరవిస్తాయి. 'చరిత్ర' మీ గత 10 బ్యాచ్‌లను మీ స్వంత బ్రౌజర్‌లోనే ఉంచుతుంది: ఒక దాన్ని తిరిగి తీసుకురావడానికి క్లిక్ చేయండి, ఒకే ఎంట్రీని కాపీ చేయండి లేదా తొలగించండి, లేదా మొత్తాన్ని క్లియర్ చేయండి. 'క్లియర్ చేయండి' మీ సెట్టింగ్‌లను అలాగే ఉంచి ఫలితాన్ని ఖాళీ చేస్తుంది, మరియు 50 ఐడెంటిఫైయర్‌ల తర్వాత జాబితా యాభై వరుసలకు బదులుగా స్క్రోల్ చేయగల ఒకే బ్లాక్‌గా మారుతుంది.

ఈ పేజీలో అత్యంత పర్యవసానమైన విషయం ఏమిటంటే ఒక ప్రైమరీ కీ గా v4 మరియు v7 ల మధ్య ఉన్న వ్యత్యాసం, మరియు ఇది కేవలం ఇష్టానికి సంబంధించిన విషయం కాదు. డేటాబేస్ ఇండెక్స్‌లు క్రమబద్ధమైన (sorted) ఆర్డర్‌లో ఉంచబడిన చెట్లు (B-trees), మరియు ఆ క్రమంలో ఒక కొత్త కీ ఎక్కడ ల్యాండ్ అవుతుందనేది ఇన్సర్ట్ ఆపరేషన్‌కి ఎంత పని అవుతుందనేది నిర్ణయిస్తుంది. ఒక v4 కీ రాండమ్‌గా ఉంటుంది, కాబట్టి వరుస ఇన్సర్ట్‌లు ఇండెక్స్‌లోని సంబంధం లేని మూలల్లో ల్యాండ్ అవుతాయి: నిండిపోయిన పేజీలు చీలిపోతాయి, డేటాబేస్ మెమరీలో ఉంచుకున్న చెట్టు విభాగాలు తదుపరి ఇన్సర్ట్‌కు అవసరమైన విభాగాలుగా ఉండటం అరుదు, మరియు ఇండెక్స్ అది సూచించే వరుసలు సమర్థించే దానికంటే పెద్దదిగా మరియు మరింత విచ్ఛిన్నంగా (fragmented) మారుతుంది. ఒక v7 కీ ప్రస్తుత మిల్లీసెకండ్‌తో మొదలవుతుంది, కాబట్టి వరుస ఇన్సర్ట్‌లు చెట్టు యొక్క కుడివైపు అంచున ఒకదాని పక్కన ఒకటి ల్యాండ్ అవుతాయి, ఆటో-ఇంక్రిమెంట్ అయ్యే ఒక ఇంటీజర్ (integer) ఉత్పత్తి చేసే నమూనా ఇదే మరియు ఇండెక్స్ స్ట్రక్చర్‌లు దేని చుట్టూ నిర్మించబడ్డాయో ఆ నమూనా కూడా ఇదే. ఈ మొత్తం రాజీ ఇదే: సర్వర్‌ని అడగకుండా ఎవరైనా ఐడెంటిఫైయర్‌ను సృష్టించవచ్చు అనే ప్రాథమిక లక్షణాన్ని (దీనివల్లే మీరు అసలు UUID లను ఎంచుకున్నారు) అట్టిపెట్టుకుంటూనే, ఒక సీక్వెన్షియల్ కీ యొక్క ఇన్సర్ట్ ప్రవర్తనను v7 మీకు ఇస్తుంది. ఇది అడిగే మూల్యం ఏమిటంటే ఐడెంటిఫైయర్ లోపల సృష్టించిన సమయం చదవగలిగేలా ఉంటుంది, అది పట్టింపు అంశమా కాదా అనేది మీ డేటా గురించిన ప్రశ్న, ఫార్మాట్ గురించి కాదు.

ఏదీ కూడా ఒక UUID యొక్క ప్రత్యేకతను (uniqueness) ఎప్పుడూ తనిఖీ చేయదు; దాని పరిమాణమే దానికి గ్యారెంటీ. రిజిస్ట్రీ లేదు, సర్వర్‌కు వెళ్లొచ్చే రౌండ్-ట్రిప్ లేదు, వెతకటం (lookup) లేదు — జనరేటర్ ఒక సంఖ్యను ఉత్పత్తి చేసి దాన్ని అప్పగిస్తుంది, మరియు వాటిలో ఏ రెండూ ఒకదానితో ఒకటి ఢీకొనకపోవడానికి (collide) కారణం కేవలం v4 కి సంబంధించి 2^122 సాధ్యమైన విలువలు ఉండటమే, ఇది సుమారు 5.3 అన్‌డెసిలియన్ (5.3 × 10^36). బర్త్‌డే ప్రాబ్లమ్ అనేది దాని పరిమాణాన్ని అంచనా వేయడానికి ఒక నిజాయితీ పద్ధతి: వాటిలో ఏవైనా రెండు సరిపోలడానికి 50% అవకాశం ఉండాలంటే మీకు సుమారు 2.7 క్వింటిలియన్ (2.7 × 10^18) ఐడెంటిఫైయర్‌లు కావాలి, అనగా 86 సంవత్సరాల పాటు ప్రతి సెకనుకు ఒక బిలియన్ కొత్త UUID లు. ఇది ఏ హామీ ఇస్తుంది మరియు ఏమి ఇవ్వదు అనే విషయాల్లో కచ్చితంగా ఉండటం విలువైంది. ఇది ఒక స్టాటిస్టికల్ హామీ, అంకగణిత (arithmetic) హామీ కాదు, మరియు అడుగున ఉన్న రాండమ్‌నెస్ నిజమైనదిగా ఉన్నంత వరకే ఇది వర్తిస్తుంది — తప్పుగా సీడ్ చేయబడిన (seeded) ఒక జనరేటర్, లేదా దాని ఎంట్రోపీ పూల్‌తో సహా క్లోన్ (clone) చేయబడిన ఒక వర్చువల్ మెషీన్, దీన్ని ఫార్మాట్ పసిగట్టలేని రీతిలో విచ్ఛిన్నం చేస్తుంది. వెర్షన్ 7 ఈ ప్రశ్నను మరింత కుదిస్తుంది: ఒకే మిల్లీసెకండ్ లోపల ఒక జనరేటర్ తనను తాను పునరావృతం చేసుకోనే లేదు, ఎందుకంటే డైస్ వేసినట్టు కాకుండా కౌంటర్ ఒక్కొక్కటీ పెరుగుతుంది (increments), మరియు స్వతంత్ర జనరేటర్‌ల మధ్య 62 రాండమ్ బిట్‌లు ఆ పని చేస్తాయి.

ఒక UUID అనేది ఒక ఐడెంటిఫైయర్, పాస్‌వర్డ్ కాదు. వెర్షన్ 4 అనూహ్యమైనది, మరియు అది మనుషులను దీన్ని ఒక రహస్యం వలె పరిగణించేలా ఊరిస్తుంది — ఒక పాస్‌వర్డ్-రీసెట్ లింక్, ఊహించలేని URL, సెషన్ టోకెన్, ఒక API కీ లాగా. అనూహ్యత అనేది నిజమే, కానీ రహస్యం అనేది ఒక విలువను ఎలా నిర్వహిస్తారనే దానికి సంబంధించిన లక్షణం, మరియు ఐడెంటిఫైయర్‌లు కావాలనే అజాగ్రత్తగా నిర్వహించబడతాయి: అవి బ్రౌజర్ హిస్టరీ, సర్వర్ లాగ్స్, రెఫరర్ హెడర్‌లు మరియు అనలిటిక్స్‌లో చేరే URL లలో కూర్చుంటాయి, మరియు చాట్ మెసేజ్‌లలో పేస్ట్ చేయబడతాయి. మిగతా వెర్షన్లు ఇంకా చెడ్డ ఎంపికలు. వెర్షన్ 1 మరియు వెర్షన్ 7 రెండూ సృష్టించబడిన క్షణాన్ని ఎన్‌కోడ్ చేస్తాయి, కాబట్టి ఒక దాన్ని పట్టుకున్న ఎవరికైనా అది ఎప్పుడు తయారు చేయబడిందో స్థూలంగా తెలుస్తుంది మరియు దానితో పాటు తయారైన వాటన్నింటి కదలికల పరిధిని ఇరుకు చేయవచ్చు. వెర్షన్లు 3 మరియు 5 ఉద్దేశపూర్వకంగానే నిర్ణయాత్మకమైనవి (deterministic): ఇమెయిల్ అడ్రస్‌కి చెందిన v5 UUID ఒక హ్యాష్ చేయబడిన రహస్యం కాదు, అది అదే అడ్రస్ ఉన్న ఎవరైనా ఒక సెకనులో లెక్కించగల విలువ. ఒక వస్తువుకు పేరు పెట్టడానికి UUID ని వాడండి. విలువ ఎవరికీ తెలియకుండా ఉండాల్సినప్పుడు, పాస్‌వర్డ్ జనరేటర్ లేదా రహస్యాల కోసం నిర్మించిన లైబ్రరీ నుండి ఒక టోకెన్‌ను వాడండి.

ఈ UUID జనరేటర్‌ను ఎందుకు ఎంచుకోవాలి?

పేరు ఖాళీగా ఉందని ఏదైనా నిర్ధారించడానికి ముందు ఏదైనా వస్తువుకు పేరు పెట్టాల్సిన ప్రతి చోటా UUID లు కనిపిస్తాయి. అప్లికేషన్ కోడ్ ఇప్పుడే ఇన్సర్ట్ చేయబోతున్న వరుసల (rows) కోసం వీటిని ముద్రిస్తుంది, కాబట్టి ఆ ఆబ్జెక్ట్ డేటాబేస్‌ను చేరుకోకముందే దానికి ఒక గుర్తింపు ఉంటుంది మరియు రాసే ప్రక్రియ ఇంకా కొనసాగుతుండగానే క్లయింట్ దాన్ని రిఫరెన్స్ చేయవచ్చు. డిస్ట్రిబ్యూటెడ్ సిస్టమ్‌లు వీటిపై ఇంకా ఎక్కువగా ఆధారపడతాయి: ఒకే టేబుల్‌లోకి రాసే పలు సర్వీస్‌లు, విమానంలో ఉన్నప్పుడు ఆఫ్‌లైన్‌లో రికార్డులను సృష్టిస్తున్న మొబైల్ క్లయింట్, తాను ఇప్పటికే ప్రాసెస్ చేసిన సందేశాన్ని గుర్తించాల్సిన క్యూ — వీటిలో ఏవీ షేర్ చేయబడిన కౌంటర్ కోసం తమ వంతు వచ్చే దాకా వేచి ఉండలేవు. వెర్షన్ 5 వేరొక అవసరాన్ని తీరుస్తుంది, అదేంటంటే మీ వద్ద అప్పటికే ఉన్న దాని నుండి సేకరించిన ఒక స్థిరమైన ఐడెంటిఫైయర్: ఒకే డాక్యుమెంట్, ఒకే URL లేదా ఒకే అకౌంట్ ఎప్పుడూ ఒకే UUID కి మ్యాప్ అవుతుంది, తద్వారా దేనినీ డూప్లికేట్ చేయకుండా ఒక ఇంపోర్ట్‌ను రెండుసార్లు నడపవచ్చు. ఇతర చోట్ల అవి కేవలం ఒక సిస్టమ్ డిమాండ్ చేసే ఫార్మాట్ — లాగ్‌లు మరియు ట్రేస్‌ల ద్వారా చేరే కోరిలేషన్ ఐడెంటిఫైయర్, వెయ్యి మంది వినియోగదారుల అప్‌లోడ్‌లు ఒకే బకెట్‌లో పడినప్పుడు ఢీకొనని ఫైల్ పేరు, ఒక Windows రిజిస్ట్రీ కీ, అసలైన డేటా లాగా కనిపించాల్సిన టెస్ట్ ఫిక్స్‌చర్ (test fixture).

కొన్ని నిజాయితీ గల పరిమితులు తెలుసుకోవడం విలువైంది. ఒక బ్యాచ్ అనగా ఒక వెర్షన్: 'వెర్షన్' లో ఉన్న విలువ దానిలోని ప్రతిదానికీ వర్తిస్తుంది, కాబట్టి v4 ల రన్ మరియు v7 ల రన్ అనేవి రెండు బ్యాచ్‌లు. ఇది ఒక జనరేటర్, ఇన్‌స్పెక్టర్ కాదు — ఒక UUID ని అందులో పేస్ట్ చేసి దాని వెర్షన్ లేదా టైమ్‌స్టాంప్‌ను తిరిగి చదవడం అనేది ఈ పేజీ చేసే పని కాదు. 'ఫైల్‌కు సేవ్ చేయండి' అనేది CSV లేదా JSON కు బదులుగా ఒక ప్లెయిన్ టెక్స్ట్ ఫైల్‌ను రాస్తుంది. వెర్షన్ 7 అది ఎప్పుడు సృష్టించబడిందో మిల్లీసెకండ్ వరకు ఓపెన్‌గా వెల్లడిస్తుంది, ఇది ఒక నిజమైన రాజీ మాత్రమే తప్ప లోపం కాదు, మరియు వెర్షన్ 1 కూడా అదే విధంగా సమయాన్ని లీక్ చేస్తుంది; అది మీ డేటాకి సమస్య అయితే, ఎవరికీ ఏమీ చెప్పని వెర్షన్ వెర్షన్ 4 మాత్రమే. ప్రమాణం నుండి వచ్చిన రెండు ప్రత్యేక విలువలు వెర్షన్‌లు కావు కాబట్టి అవి 'వెర్షన్' లో ఎంపికలుగా లేవు, కానీ మీరు వాటిని ఇక్కడ నుండి కాపీ చేయవచ్చు: nil UUID, 00000000-0000-0000-0000-000000000000, మరియు max UUID, ffffffff-ffff-ffff-ffff-ffffffffffff. ఈ పేజీలోని ప్రతిదీ 2024 లో RFC 4122 స్థానంలో వచ్చిన స్పెసిఫికేషన్ అయిన RFC 9562 ని అనుసరిస్తుంది, కాబట్టి ఔట్‌పుట్ అనేది UUID లను హ్యాండిల్ చేసే ఏ లైబ్రరీ, డేటాబేస్ లేదా API చేతనైనా అంగీకరించబడుతుంది. ఆ పరిమితుల లోపల దీని హామీ ఒక బలమైనది: ప్రతి ఐడెంటిఫైయర్ ప్రమాణానికి అనుగుణంగా, క్రిప్టోగ్రాఫికల్‌గా సురక్షితమైన రాండమ్‌నెస్ నుండి, మీ స్వంత మెషీన్‌లో నిర్మించబడుతుంది, మరియు దాన్ని మరెవరూ ఎప్పటికీ చూడరు.

FAQ

ఒక UUID ని నేను ఎలా సృష్టించాలి?

'వెర్షన్' లో ఒక వెర్షన్‌ని ఎంచుకోండి, 'ఎంపికల సంఖ్య' లో మీకు ఎన్ని కావాలో సెట్ చేయండి, ఆపై 'సృష్టించు' నొక్కండి. పేజీ ఒకే ఒక వెర్షన్ 4 ఐడెంటిఫైయర్‌తో తెరుచుకుంటుంది, ఇదే ఎక్కువ ప్రాజెక్ట్‌లు కోరుకునేది, కాబట్టి సాధారణ UUID ఒక క్లిక్ దూరంలో ఉంటుంది. ప్రతి విలువ దాని స్వంత కాపీ బటన్‌తో కనిపిస్తుంది, మరియు 'అన్నీ కాపీ చేయండి' మొత్తం బ్యాచ్‌ను ఒకేసారి తీసుకుంటుంది.

UUID v4 మరియు v7 కి మధ్య తేడా ఏమిటి?

వెర్షన్ 4 అనేది ఎలాంటి నిర్మాణం లేని 122 రాండమ్ బిట్‌లు, కాబట్టి వాటిలో రెండింటికి ఒకదానితో ఒకటి సంబంధం లేదు. వెర్షన్ 7 మొదటి 48 బిట్‌లను అది సృష్టించబడిన మిల్లీసెకండ్ కోసం వెచ్చిస్తుంది, దానికి ఒక కౌంటర్ మరియు 62 రాండమ్ బిట్‌లను కలుపుతుంది, ఆ కారణంగా దాన్ని క్రమబద్ధీకరించవచ్చు (sortable): ఒక బ్యాచ్ అది తయారైన క్రమంలో బయటకు వస్తుంది. ఐడెంటిఫైయర్ కేవలం ప్రత్యేకంగా మాత్రమే ఉండాల్సినప్పుడు v4 ని, మరియు అది ఒక డేటాబేస్ కీ అయినప్పుడు v7 ని వాడండి.

నేను ఏ UUID వెర్షన్ వాడాలి?

వేరొకదాన్ని ఎంచుకోవడానికి మీకు ఒక కారణం ఉంటే తప్ప వెర్షన్ 4 వాడండి. ఐడెంటిఫైయర్ ఒక ప్రైమరీ కీ గా మారి ఇన్సర్ట్ పెర్ఫార్మన్స్ ముఖ్యమైతే వెర్షన్ 7 ని ఎంచుకోండి, ఒకే ఇన్‌పుట్ ఎప్పుడూ ఒకే ఐడెంటిఫైయర్‌ను ఉత్పత్తి చేయవలసి వస్తే వెర్షన్ 5 ని ఎంచుకోండి, మరియు మీరు మాట్లాడాల్సిన ఒక సిస్టమ్ ప్రత్యేకంగా అడిగితే మాత్రమే వెర్షన్ 1 ని ఎంచుకోండి. వెర్షన్ 3 అనేది SHA-1 కి బదులుగా MD5 తో ఉన్న వెర్షన్ 5 లాంటిదే, మరియు అది అనుకూలత (compatibility) కోసం ఉంది.

సృష్టించబడిన UUID లు నిజంగా రాండమ్ మరియు సురక్షితమేనా?

ఈ రాండమ్‌నెస్ క్రిప్టోగ్రాఫికల్‌గా సురక్షితమైనది: ఇది Math.random() నుండి కాకుండా, మీ బ్రౌజర్ యొక్క Web Crypto API నుండి crypto.randomUUID() లేదా crypto.getRandomValues() ద్వారా వస్తుంది. ఊహించలేనిది అనే అర్థంలో సురక్షితమైనది అనేది రహస్యం అనే అర్థంలో సురక్షితమైనది అనే దానికి భిన్నమైన ప్రశ్న — UUID అనేది ఒక ఐడెంటిఫైయర్, దాన్ని పాస్‌వర్డ్, సెషన్ టోకెన్ లేదా API కీ లాగా వాడకూడదు.

ఒకేసారి నేను చాలా UUID లను సృష్టించవచ్చా?

అవును, ఒకేసారి 1000 వరకు. 'ఎంపికల సంఖ్య' ని సెట్ చేసి 'సృష్టించు' నొక్కండి; యాభై విలువల తర్వాత ఫలితం ఒక పొడవైన వరుసల జాబితాకు బదులుగా స్క్రోల్ చేయగల ఒకే బ్లాక్‌గా మారుతుంది. 'అన్నీ కాపీ చేయండి' మరియు 'ఫైల్‌కు సేవ్ చేయండి' మొత్తం బ్యాచ్‌ను, 'కాపీ ఫార్మాట్' చెప్పిన విధంగా కలిపి తీసుకుంటాయి — ఒక్కో లైన్‌కు ఒకటి, కామాతో వేరు చేసి, లేదా ఒక ఎరేలో (array) పేస్ట్ చేయడానికి కొటేషన్లలో ఉంచి.

v3 మరియు v5 నాకు ప్రతిసారీ ఒకే UUID ని ఎందుకు ఇస్తాయి?

ఎందుకంటే అవి ఉన్నది అందుకోసమే. వెర్షన్లు 3 మరియు 5 నిర్ణయాత్మకమైనవి (deterministic): అవి మీరు ఇచ్చిన నేమ్‌స్పేస్ మరియు పేరును హ్యాష్ చేస్తాయి, కాబట్టి ఒకే విధమైన ఇన్‌పుట్‌లు ఏ మెషీన్‌లోనైనా, ఏ భాషలోనైనా ఎప్పుడూ ఒకే ఐడెంటిఫైయర్‌ను ఉత్పత్తి చేస్తాయి. మీ దగ్గర అప్పటికే ఉన్న ఒకదాని నుండి స్థిరమైన ఐడెంటిఫైయర్‌ను పొందడానికి ఇది వాటిని ఉపయోగకరంగా చేస్తుంది, మరియు మీరు వాటిని ఎంచుకున్నప్పుడు 'ఎంపికల సంఖ్య' అదృశ్యమవడానికి కారణం కూడా ఇదే.

నేమ్‌స్పేస్ మరియు పేరు అంటే ఏమిటి, నేను ఏ నేమ్‌స్పేస్‌ను ఎంచుకోవాలి?

ఒక వెర్షన్ 3 లేదా వెర్షన్ 5 UUID ఏ రెండు ఇన్‌పుట్‌ల నుండి లెక్కించబడుతుందో అవే ఇవి. 'నేమ్‌స్పేస్' అనేది పేరు ఎలాంటిది అని చెబుతుంది — హోస్ట్ పేర్లకు DNS, అడ్రస్‌లకు URL, ఆ డైరెక్టరీ స్కీమ్‌లకు OID మరియు X.500, లేదా మీ స్వంత నేమ్‌స్పేస్ UUID ని అందించాలనుకుంటే 'అనుకూల' అని ఎంచుకోండి, ఇది ఒక అప్లికేషన్ లోపల సాధారణ ఎంపిక. 'పేరు' అనేది ఆ స్ట్రింగ్. వేర్వేరు నేమ్‌స్పేస్‌లు ఒకే పేరుకి పూర్తిగా భిన్నమైన ఫలితాలను ఇస్తాయి, అవి ఉండటంలో ఉద్దేశం అదే.

ఒక డేటాబేస్ ప్రైమరీ కీ కోసం v4 కన్నా UUID v7 ఎందుకు ఉత్తమం?

ఎందుకంటే విలువలు ఇండెక్స్‌లో ఎక్కడ ల్యాండ్ అవుతాయనేది కారణం. ఒక ఇండెక్స్ క్రమబద్ధమైన ఆర్డర్‌లో ఉంచబడుతుంది, ఒక రాండమ్ v4 కీ అందులో ఎక్కడైనా ల్యాండ్ అవుతుంది, కాబట్టి ఇన్సర్ట్‌లు చెట్టు అంతటా పేజీలను చీల్చుతాయి (page split) మరియు మెమరీలో ఉంచుకున్న విభాగాలు తదుపరి అవసరమైన విభాగాలుగా ఉండటం అరుదు. ఒక v7 కీ ప్రస్తుత మిల్లీసెకండ్‌తో మొదలవుతుంది, కాబట్టి వరుస ఇన్సర్ట్‌లు ఇండెక్స్ చివరలో కలిసి ల్యాండ్ అవుతాయి, సీక్వెన్షియల్ ఇంటీజర్ కీ ఆ విధంగానే ప్రవర్తిస్తుంది — అదే సమయంలో ఏ సర్వీస్ అయినా ఒక సెంట్రల్ కౌంటర్‌ని అడగకుండా ఐడెంటిఫైయర్‌ను సృష్టించడానికి అనుమతిస్తుంది.

రెండు UUID లు ఎప్పుడైనా ఒకేలా ఉండగలవా?

సూత్రప్రాయంగా అవును, ఆచరణలో కాదు, మరియు ఏది నిజమో తెలుసుకోవడం విలువైంది. ఏదీ ప్రత్యేకతను నిర్ధారించదు: సులభంగా 2^122 సాధ్యమైన వెర్షన్ 4 విలువలు ఉన్నాయి, అనగా సుమారు 5.3 అన్‌డెసిలియన్, మరియు ఏకైక కొలిజన్ (collision) జరిగే అవకాశం 50% ఉండాలంటే సుమారు 2.7 క్వింటిలియన్ — 86 సంవత్సరాల పాటు సెకనుకు ఒక బిలియన్ — వాటి అవసరం ఉంటుంది. ఆ హామీ సంపూర్ణమైనది అనేదానికంటే స్టాటిస్టికల్, మరియు అది రాండమ్‌నెస్ వాస్తవమైనది అనేదానిపై ఆధారపడి ఉంటుంది, అందువల్లే ఈ జనరేటర్ ఒక సాధారణ సూడో-రాండమ్ ఫంక్షన్‌కి బదులుగా Web Crypto API ని వాడుతుంది.

నేను ఒక UUID ని పాస్‌వర్డ్, ఒక API కీ లేదా సెషన్ టోకెన్ లాగా వాడవచ్చా?

వాడకూడదు, ఎక్కువ మూల్యం చెల్లించే పొరపాటు ఇదే. ఒక వెర్షన్ 4 UUID అనూహ్యమైనది, కానీ ఐడెంటిఫైయర్‌లు పబ్లిక్ అన్నట్లుగానే నిర్వహించబడతాయి: అవి URL లు, బ్రౌజర్ హిస్టరీ, సర్వర్ లాగ్స్, రెఫరర్ హెడర్‌లు మరియు అనలిటిక్స్‌లో చేరిపోతాయి. వెర్షన్ 1 మరియు 7 అదనంగా అవి ఎప్పుడు తయారయ్యాయో బహిర్గతం చేస్తాయి, మరియు ఇన్‌పుట్‌లు తెలిసిన ఎవరైనా వెర్షన్ 3 మరియు 5 లను మళ్లీ లెక్కించవచ్చు. రహస్యంగా ఉండాల్సిన దేనికైనా, ఒక పాస్‌వర్డ్ జనరేటర్ లేదా రహస్యాల కోసం ఉద్దేశించిన లైబ్రరీ టోకెన్‌ను వాడండి.

UUID v7 తాను ఎప్పుడు సృష్టించబడిందో బయటపెడుతుందా?

అవును, మిల్లీసెకండ్ వరకు, అది రూపకల్పన (design) వల్లే అలా జరుగుతుంది తప్ప పొరపాటు కాదు — టైమ్‌స్టాంప్ అనేది v7 ని క్రమబద్ధీకరించేలా (sortable) చేస్తుంది. ఫలితం కింద ఉన్న లైన్ బ్యాచ్‌లోని మొదటి విలువలో ఎన్‌కోడ్ చేయబడిన సమయాన్ని మీకు చూపుతుంది, తద్వారా ఏది బహిర్గతమవుతుందో మీరు కచ్చితంగా చూడగలరు. వెర్షన్ 1 కి కూడా ఒక టైమ్‌స్టాంప్ ఉంటుంది. సృష్టించబడిన సమయాన్ని మీరు పబ్లిష్ చేయకూడదు అనుకుంటే, ఏ సమయాన్నీ తీసుకెళ్లని వెర్షన్ వెర్షన్ 4 మాత్రమే.

UUID v1 నా MAC అడ్రస్‌ను బహిర్గతం చేస్తుందా?

ఇక్కడ కాదు. అసలైన స్కీమ్ మెషీన్ యొక్క నెట్‌వర్క్ కార్డ్ అడ్రస్‌ను నోడ్ ఫీల్డ్‌గా వాడింది, v1 పేరు అక్కడి నుంచే వచ్చింది, కానీ ఈ ప్రమాణం (standard) మల్టీకాస్ట్ బిట్‌తో గుర్తు పెట్టబడిన రాండమ్ నోడ్ ఐడెంటిఫైయర్‌ను కూడా అనుమతిస్తుంది, మరియు ఈ జనరేటర్ ఉత్పత్తి చేసేది అదే. మీ హార్డ్‌వేర్ అడ్రస్ ఎప్పుడూ చదవబడదు మరియు అవుట్‌పుట్‌లో ఎప్పుడూ కనిపించదు.

పెద్ద అక్షరాలు, అడ్డుగీతలు లేకుండా, వంకర కుండలీకరణాలు మరియు urn:uuid: దేన్ని మారుస్తాయి?

ప్రదర్శనను మాత్రమే — అడుగున ఉన్న 128 బిట్‌లు ప్రతి రూపంలోనూ ఒకేలా ఉంటాయి. 'పెద్ద అక్షరాలు' హెక్స్ (hex) అంకెలను పెద్ద అక్షరాలుగా ముద్రిస్తుంది, 'అడ్డుగీతలు లేకుండా' 32-అక్షరాల కుదించబడిన వెర్షన్‌ను ఇస్తుంది, 'వంకర కుండలీకరణాలు' Windows మరియు .NET లు ఒక GUID ని రాసే విధంగా విలువను { } లోపల ఉంచుతుంది, మరియు urn:uuid: దాన్ని అధికారిక URN గా మార్చే ప్రిఫిక్స్‌ను జతచేస్తుంది. urn:uuid: ఆన్‌లో ఉన్నప్పుడు మిగతా రెండింటినీ ఆఫ్ చేస్తుంది, ఎందుకంటే ప్రమాణం సరిగ్గా ఒకే ఒక URN రూపాన్ని నిర్వచించింది మరియు అది అడ్డుగీతలు కలిగిన కానానికల్ రూపం.