Whiz Tools

CUID जनरेटर

जल्दी आणि सोप्या पद्धतीने टकराव-प्रतिरोधक आयडी तयार करा.

CUID संरचना

टाइमस्टॅम्प:

यादृच्छिक:

CUID जनरेटर

परिचय

CUID (Collision-resistant Unique IDentifier) एक अद्वितीय संकेतक आहे जो टकराव-प्रतिरोधक, आडव्या स्केलेबल आणि अनुक्रमाने क्रमबद्ध करण्यासाठी डिझाइन केलेले आहे. CUIDs विशेषतः वितरित प्रणालींमध्ये उपयुक्त आहेत जिथे अद्वितीय संकेतक समन्वयाशिवाय तयार करणे आवश्यक आहे.

CUIDs ची रचना

CUID सामान्यतः खालील घटकांचा समावेश करतो:

  1. टाईमस्टॅम्प: वर्तमान वेळेचे प्रतिनिधित्व
  2. काउंटर: त्याच मिलीसेकंदात अद्वितीयतेसाठी एक अनुक्रमिक काउंटर
  3. क्लायंट फिंगरप्रिंट: CUID तयार करणाऱ्या मशीन किंवा प्रक्रियेसाठी एक अद्वितीय संकेतक
  4. यादृच्छिक घटक: टकरावाची शक्यता कमी करण्यासाठी अतिरिक्त यादृच्छिक डेटा

सुसंगत रचनांमध्ये भिन्नता असू शकते, परंतु हे घटक एकत्रितपणे एक अद्वितीय आणि क्रमबद्ध संकेतक तयार करण्यासाठी कार्य करतात.

येथे एक सामान्य CUID संरचनेचे दृश्य प्रतिनिधित्व आहे:

टाईमस्टॅम्प काउंटर फिंगरप्रिंट यादृच्छिक

CUID कसे जनरेट केले जातात

CUIDs वेळ आधारित आणि यादृच्छिक घटकांच्या संयोजनाचा वापर करून तयार केले जातात. प्रक्रिया सामान्यतः खालीलप्रमाणे असते:

  1. वर्तमान टाईमस्टॅम्प मिळवणे
  2. काउंटर वाढवणे (जो कालांतराने रीसेट होतो)
  3. क्लायंट फिंगरप्रिंट जनरेट करणे (सामान्यतः प्रत्येक सत्र किंवा अनुप्रयोगाच्या प्रारंभावर एकदा केले जाते)
  4. यादृच्छिक डेटा जोडणे
  5. या घटकांना विशिष्ट स्वरूपात एकत्रित करणे

उत्पन्न CUID सामान्यतः अक्षरे आणि संख्यांचा एक स्ट्रिंग म्हणून दर्शविला जातो.

फायदे आणि वापर प्रकरणे

CUIDs इतर अद्वितीय संकेतक प्रणालींवर अनेक फायदे देतात:

  1. टकराव प्रतिरोध: टाईमस्टॅम्प, काउंटर, आणि यादृच्छिक डेटाचा संयोजन टकरावाची शक्यता अत्यंत कमी करतो, अगदी वितरित प्रणालींमध्येही.
  2. आडवे स्केलेबिलिटी: CUIDs अनेक मशीनवर समन्वयाशिवाय स्वतंत्रपणे तयार केल्या जाऊ शकतात.
  3. अनुक्रमिक क्रमबद्धता: टाईमस्टॅम्प घटक CUIDs चा कालानुक्रमिक क्रमाने क्रमबद्धता करण्यास अनुमती देते.
  4. URL-अनुकूल: CUIDs सामान्यतः URL-सुरक्षित अक्षरांनी बनलेले असतात.

CUIDs च्या सामान्य वापर प्रकरणांमध्ये समाविष्ट आहेत:

  • डेटाबेस प्राथमिक की
  • वितरित प्रणाली जिथे अद्वितीय ID तयार करणे आवश्यक आहे
  • वेब अनुप्रयोगांमध्ये सत्र ID
  • विश्लेषण प्रणालींमध्ये घटना ट्रॅकिंग
  • क्लाउड स्टोरेज प्रणालींमध्ये फाइल किंवा संसाधनांचे नावकरण

कोड उदाहरणे

येथे विविध प्रोग्रामिंग भाषांमध्ये CUIDs तयार करण्याचे उदाहरणे आहेत:

// JavaScript ('cuid' लायब्ररी वापरून)
const cuid = require('cuid');
const id = cuid();
console.log(id);
## Python ('cuid' लायब्ररी वापरून)
import cuid
id = cuid.cuid()
print(id)
## Ruby ('cuid' जेम वापरून)
require 'cuid'
id = Cuid::generate
puts id
// Java ('com.github.f4b6a3.cuid' लायब्ररी वापरून)
import com.github.f4b6a3.cuid.Cuid;

public class CuidExample {
    public static void main(String[] args) {
        String id = Cuid.createCuid();
        System.out.println(id);
    }
}
// C# ('Cuid.Net' NuGet पॅकेज वापरून)
using Cuid;

class Program
{
    static void Main(string[] args)
    {
        string id = CuidGenerator.Generate();
        Console.WriteLine(id);
    }
}
// PHP ('endyjasmi/cuid' पॅकेज वापरून)
<?php
require 'vendor/autoload.php';
use Endyjasmi\Cuid\Cuid;

$id = Cuid::make();
echo $id;
// Go ('github.com/lucsky/cuid' पॅकेज वापरून)
package main

import (
    "fmt"
    "github.com/lucsky/cuid"
)

func main() {
    id := cuid.New()
    fmt.Println(id)
}
// Swift ('CUID' पॅकेज वापरून)
import CUID

let id = CUID()
print(id)
// C++ (कस्टम अंमलबजावणी वापरून)
#include <iostream>
#include <chrono>
#include <random>
#include <sstream>
#include <iomanip>

std::string generateCUID() {
    auto now = std::chrono::system_clock::now();
    auto now_ms = std::chrono::time_point_cast<std::chrono::milliseconds>(now);
    auto value = now_ms.time_since_epoch();
    long duration = value.count();

    std::random_device rd;
    std::mt19937 gen(rd());
    std::uniform_int_distribution<> dis(0, 35);

    std::stringstream ss;
    ss << 'c';
    ss << std::hex << std::setfill('0') << std::setw(8) << duration;
    for (int i = 0; i < 8; i++) {
        int r = dis(gen);
        ss << (char)(r < 10 ? '0' + r : 'a' + r - 10);
    }
    return ss.str();
}

int main() {
    std::string id = generateCUID();
    std::cout << id << std::endl;
    return 0;
}
% MATLAB (कस्टम अंमलबजावणी वापरून)
function id = generateCUID()
    timestamp = dec2hex(round(posixtime(datetime('now'))*1000), 8);
    random = '';
    for i = 1:8
        random = [random char(randi([48 57 97 122]))];
    end
    id = ['c' timestamp random];
end

% वापर
id = generateCUID();
disp(id);
## R (कस्टम अंमलबजावणी वापरून)
library(lubridate)

generate_cuid <- function() {
  timestamp <- format(as.numeric(now()) * 1000, scientific = FALSE)
  timestamp <- substr(timestamp, 1, 8)
  random <- paste0(sample(c(0:9, letters[1:6]), 8, replace = TRUE), collapse = "")
  paste0("c", timestamp, random)
}

## वापर
id <- generate_cuid()
print(id)
' Excel VBA (कस्टम अंमलबजावणी वापरून)
Function GenerateCUID() As String
    Dim timestamp As String
    Dim random As String
    Dim i As Integer
    
    timestamp = Right("00000000" & Hex(CLng(CDbl(Now()) * 86400000)), 8)
    
    For i = 1 To 8
        random = random & Mid("0123456789abcdef", Int(Rnd() * 16) + 1, 1)
    Next i
    
    GenerateCUID = "c" & timestamp & random
End Function

' सेलमध्ये वापर
'=GenerateCUID()

इतिहास आणि विकास

CUIDs मूळतः Eric Elliott द्वारे 2012 मध्ये वितरित प्रणालींमध्ये अद्वितीय संकेतक तयार करण्याच्या समस्येचे समाधान म्हणून विकसित केले गेले. या संकल्पनेला Twitter च्या Snowflake ID प्रणालीने प्रेरित केले, परंतु अधिक सहजपणे लागू आणि विविध प्लॅटफॉर्मवर वापरले जाऊ शकते.

CUIDs चा विकास एक साधा, टकराव-प्रतिरोधक ID प्रणाली निर्माण करण्याच्या आवश्यकतेद्वारे प्रेरित होता, जी विविध प्रोग्रामिंग भाषांमध्ये आणि वातावरणांमध्ये कार्य करू शकेल. Elliott चा उद्देश एक प्रणाली तयार करणे होता जी लागू करण्यास सोपी असेल, केंद्रीय समन्वयाची आवश्यकता नसेल आणि आडवे स्केल करू शकेल.

त्याच्या सुरुवातीपासून, CUID अनेक आवृत्त्या आणि सुधारणा झाल्या आहेत:

  1. मूळ CUID अंमलबजावणी साधेपणावर आणि वापराच्या सोपेपणावर केंद्रित होती.
  2. जसे-जसे स्वीकृती वाढली, समुदायाने विविध प्रोग्रामिंग भाषांमध्ये अंमलबजावणीमध्ये योगदान दिले.
  3. 2021 मध्ये, CUID2 सादर केले गेले जे मूळ CUID च्या काही मर्यादांवर मात करण्यासाठी आणि आणखी चांगली कार्यक्षमता आणि टकराव प्रतिरोध प्रदान करण्यासाठी होते.
  4. CUID2 ने मूळवर सुधारणा केली, अधिक सुरक्षित यादृच्छिक संख्या जनरेटरचा वापर केला आणि संकेतकाची एकूण लांबी वाढवली.

CUIDs चा विकास वितरित प्रणालींच्या बदलत्या गरजांचे प्रतिबिंब आहे आणि अद्वितीय संकेतक निर्मितीमध्ये साधेपणा, सुरक्षा आणि कार्यक्षमता यांचे संतुलन साधण्याच्या सततच्या प्रयत्नांचे प्रतिनिधित्व करतो.

संदर्भ

  1. आधिकारिक CUID GitHub रिपॉझिटरी
  2. CUID2 स्पेसिफिकेशन
  3. Elliott, Eric. "वितरित वातावरणात अद्वितीय IDs तयार करणे." Medium, 2015.
  4. "वितरित प्रणालींसाठी टकराव-प्रतिरोधक IDs." DZone, 2018.

हा CUID जनरेटर टूल तुम्हाला तुमच्या प्रकल्पांसाठी जलद CUID तयार करण्यास अनुमती देतो. नवीन CUID तयार करण्यासाठी "जनरेट" बटणावर क्लिक करा, आणि तुमच्या अनुप्रयोगांमध्ये सोयीसाठी ते तुमच्या क्लिपबोर्डवर कॉपी करण्यासाठी "कॉपी" बटणाचा वापर करा.

Feedback