Whiz Tools

CUID ജനറേറ്റർ

തകരാറില്ലാത്ത ഐഡി വേഗത്തിൽ എളുപ്പത്തിൽ സൃഷ്ടിക്കുക.

CUID ഘടന

ടൈംസ്റ്റാമ്പ്:

യാദൃച്ഛികം:

CUID ജനറേറ്റർ

പരിചയം

CUID (Collision-resistant Unique IDentifier) ഒരു പ്രത്യേകമായി തകരാറുകൾ ഇല്ലാത്ത, അകമ്പടിയില്ലാത്ത, ക്രമീകരിച്ച രീതിയിൽ ക്രമീകരിക്കാവുന്ന ഏകീകൃത ഐഡന്റിഫയർ ആണ്. CUIDകൾ അകമ്പടിയില്ലാത്ത സിസ്റ്റങ്ങളിൽ ഉപയോഗിക്കാൻ വളരെ ഉപകാരപ്രദമാണ്, അവിടെ ഏകീകൃത ഐഡന്റിഫയറുകൾ നോട്‌കളുടെ ഇടയിൽ സഹകരണം ആവശ്യമില്ലാതെ നിർമ്മിക്കേണ്ടതുണ്ട്.

CUIDകളുടെ ഘടന

ഒരു CUID സാധാരണയായി താഴെപ്പറയുന്ന ഘടകങ്ങൾ അടങ്ങിയിരിക്കുന്നു:

  1. ടൈംസ്റ്റാമ്പ്: നിലവിലെ സമയത്തിന്റെ പ്രതിനിധാനം
  2. കൗണ്ടർ: അതേ മില്ലിസെക്കൻഡിൽ ഏകീകൃതത്വം ഉറപ്പാക്കാൻ ഒരു ക്രമീകരണ കൗണ്ടർ
  3. ക്ലയന്റ് ഫിംഗർപ്രിന്റ്: CUID നിർമ്മിക്കുന്ന യന്ത്രം അല്ലെങ്കിൽ പ്രക്രിയയ്ക്ക് വേണ്ടി ഒരു ഏകീകൃത ഐഡന്റിഫയർ
  4. യാദൃശ്ചിക ഘടകം: കൂട്ടിയിടിയ്ക്കാനുള്ള സാധ്യത കുറയ്ക്കാൻ അധികമായ യാദൃശ്ചിക ഡാറ്റ

CUID നടപ്പിലാക്കലിന്റെ അടിസ്ഥാനത്തിൽ കൃത്യമായ ഘടന വ്യത്യാസപ്പെട്ടേക്കാം, പക്ഷേ ഈ ഘടകങ്ങൾ ഒന്നിച്ച് പ്രവർത്തിച്ച് ഒരു ഏകീകൃതവും ക്രമീകരണയോഗ്യമായ ഐഡന്റിഫയർ സൃഷ്ടിക്കുന്നു.

ഒരു സാധാരണ CUID ഘടനയുടെ ദൃശ്യ പ്രതിനിധാനം ഇവിടെ കാണാം:

ടൈംസ്റ്റാമ്പ് കൗണ്ടർ ഫിംഗർപ്രിന്റ് യാദൃശ്ചികം

CUIDകൾ എങ്ങനെ നിർമ്മിക്കുന്നു

CUIDകൾ സമയ അടിസ്ഥാനവും യാദൃശ്ചിക ഘടകങ്ങളും ഉപയോഗിച്ച് നിർമ്മിക്കുന്നു. പ്രക്രിയ സാധാരണയായി അടങ്ങിയിരിക്കുന്നു:

  1. നിലവിലെ ടൈംസ്റ്റാമ്പ് നേടുക
  2. ഒരു കൗണ്ടർ വർദ്ധിപ്പിക്കുക (ഇത് കാലക്രമത്തിൽ പുനരാരംഭിക്കുന്നു)
  3. ഒരു ക്ലയന്റ് ഫിംഗർപ്രിന്റ് സൃഷ്ടിക്കുക (സെഷൻ അല്ലെങ്കിൽ ആപ്ലിക്കേഷൻ ആരംഭത്തിൽ സാധാരണയായി ഒരിക്കൽ ചെയ്യുന്നു)
  4. യാദൃശ്ചിക ഡാറ്റ ചേർക്കുക
  5. ഈ ഘടകങ്ങളെ ഒരു പ്രത്യേക രൂപത്തിൽ സംയോജിപ്പിക്കുക

ഫലമായ CUID സാധാരണയായി അക്ഷരങ്ങളും സംഖ്യകളും അടങ്ങിയ ഒരു സ്ട്രിങ്ങായി പ്രതിനിധീകരിക്കപ്പെടുന്നു.

അനുകൂലതകളും ഉപയോഗ കേസുകളും

CUIDകൾ മറ്റ് ഏകീകൃത ഐഡന്റിഫയർ സിസ്റ്റങ്ങൾക്കാളും നിരവധി അനുകൂലതകൾ നൽകുന്നു:

  1. തകരാറുകൾ ഇല്ലാത്തത്വം: ടൈംസ്റ്റാമ്പ്, കൗണ്ടർ, യാദൃശ്ചിക ഡാറ്റ എന്നിവയുടെ സംയോജനം കൂട്ടിയിടികൾ ഉണ്ടാക്കുന്നത് വളരെ അസാധ്യമാണ്, അകമ്പടിയില്ലാത്ത സിസ്റ്റങ്ങളിൽ പോലും.
  2. അകമ്പടിയില്ലാത്ത സ്കെയിലിംഗ്: CUIDകൾ പല യന്ത്രങ്ങളിൽ സഹകരണം ഇല്ലാതെ സ്വതന്ത്രമായി നിർമ്മിക്കാവുന്നതാണ്.
  3. ക്രമീകരണമായ ക്രമീകരണം: ടൈംസ്റ്റാമ്പ് ഘടകം CUIDകളുടെ കാലക്രമത്തിൽ ക്രമീകരണം അനുവദിക്കുന്നു.
  4. URL-സൗഹൃദം: CUIDകൾ സാധാരണയായി URL-സുരക്ഷിത അക്ഷരങ്ങൾ അടങ്ങിയിരിക്കുന്നു.

CUIDകൾക്കുള്ള സാധാരണ ഉപയോഗ കേസുകൾ ഉൾക്കൊള്ളുന്നു:

  • ഡാറ്റാബേസിന്റെ പ്രാഥമിക കീകൾ
  • പല നോട്‌കളിൽ ഏകീകൃത ഐഡികൾ നിർമ്മിക്കാൻ ആവശ്യമായ അകമ്പടിയില്ലാത്ത സിസ്റ്റങ്ങൾ
  • വെബ് ആപ്ലിക്കേഷനുകളിൽ സെഷൻ ഐഡികൾ
  • അനലിറ്റിക്‌സ് സിസ്റ്റങ്ങളിൽ സംഭവങ്ങൾ ട്രാക്ക് ചെയ്യുക
  • ക്ലൗഡ് സംഭരണ സിസ്റ്റങ്ങളിൽ ഫയൽ അല്ലെങ്കിൽ വിഭവ നാമകരണം

കോഡ് ഉദാഹരണങ്ങൾ

വിവിധ പ്രോഗ്രാമിംഗ് ഭാഷകളിൽ CUIDകൾ നിർമ്മിക്കുന്ന ഉദാഹരണങ്ങൾ ഇവിടെ കാണാം:

// ജാവാസ്ക്രിപ്റ്റ് (cuid ലൈബ്രറി ഉപയോഗിച്ച്)
const cuid = require('cuid');
const id = cuid();
console.log(id);
## പൈത്തൺ (cuid ലൈബ്രറി ഉപയോഗിച്ച്)
import cuid
id = cuid.cuid()
print(id)
## റൂബി (cuid ജെം ഉപയോഗിച്ച്)
require 'cuid'
id = Cuid::generate
puts id
// ജാവ (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;
// ഗോ (github.com/lucsky/cuid പാക്കേജ് ഉപയോഗിച്ച്)
package main

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

func main() {
    id := cuid.New()
    fmt.Println(id)
}
// സ്വിഫ്റ്റ് (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()

ചരിത്രവും വികസനവും

CUIDകൾ 2012-ൽ എറിക് എലിയറ്റ് വികസിപ്പിച്ചെടുത്തതാണ്, ഇത് അകമ്പടിയില്ലാത്ത സിസ്റ്റങ്ങളിൽ ഏകീകൃത ഐഡന്റിഫയറുകൾ നിർമ്മിക്കുന്ന പ്രശ്നത്തിന് ഒരു പരിഹാരമായി. ഈ ആശയം ട്വിറ്ററിന്റെ സ്നോഫ്ലേക്ക് ഐഡി സിസ്റ്റത്തിൽ നിന്ന് പ്രചോദനം എടുത്തതാണ്, എന്നാൽ ഇത് വിവിധ പ്ലാറ്റ്ഫോമുകളിൽ എളുപ്പത്തിൽ നടപ്പിലാക്കുകയും ഉപയോഗിക്കാവുന്നതാണ്.

CUIDകളുടെ വികസനം ഏകീകൃത ഐഡന്റിഫയർ സിസ്റ്റം നിർമ്മിക്കാൻ ആവശ്യമായ ഒരു ലളിതമായ, തകരാറുകൾ ഇല്ലാത്ത ഐഡി സിസ്റ്റം ഉണ്ടാക്കാനുള്ള ആവശ്യകതയെ അടിസ്ഥാനമാക്കി നടന്നു. എലിയറ്റിന്റെ ലക്ഷ്യം എളുപ്പത്തിൽ നടപ്പിലാക്കാവുന്ന, കേന്ദ്ര സഹകരണം ആവശ്യമില്ലാത്ത, അകമ്പടിയില്ലാത്ത സ്കെയിലിംഗ് സാധ്യമാക്കുന്ന ഒരു സിസ്റ്റം സൃഷ്ടിക്കുക ആയിരുന്നു.

അതിന്റെ ആരംഭത്തിൽ നിന്ന്, CUID നിരവധി പതിപ്പുകളിൽ വികസിച്ചിരിക്കുന്നു:

  1. പ്രാഥമിക CUID നടപ്പിലാക്കൽ ലളിതത്വവും ഉപയോഗസൗകര്യവും കേന്ദ്രീകരിച്ചു.
  2. സ്വീകരണം വർദ്ധിച്ചതോടെ, സമൂഹം വിവിധ പ്രോഗ്രാമിംഗ് ഭാഷകളിൽ നടപ്പിലാക്കലുകൾ സംഭാവന ചെയ്തു.
  3. 2021-ൽ, CUID2 അവതരിപ്പിക്കപ്പെട്ടു, ഇത് പ്രാഥമിക CUIDയുടെ ചില പരിധികൾ പരിഹരിക്കുകയും മികച്ച പ്രവർത്തനം, തകരാറുകൾ ഇല്ലാത്തത്വം നൽകുകയും ചെയ്തു.
  4. CUID2 പ്രാഥമികത്തെ മെച്ചപ്പെടുത്തുന്നതിന് കൂടുതൽ സുരക്ഷിതമായ യാദൃശ്ചിക നമ്പർ ജനറേറ്റർ ഉപയോഗിക്കുകയും ഐഡന്റിഫയറിന്റെ മൊത്തം നീളം വർദ്ധിപ്പിക്കുകയും ചെയ്തു.

CUIDകളുടെ പുരോഗതി അകമ്പടിയില്ലാത്ത സിസ്റ്റങ്ങളുടെ മാറ്റങ്ങൾക്കുള്ള പ്രതിഫലമാണ്, ഏകീകൃത ഐഡന്റിഫയർ നിർമ്മാണത്തിൽ ലളിതത്വം, സുരക്ഷ, പ്രവർത്തനക്ഷമത എന്നിവയെ സമന്വയിപ്പിക്കാൻ നടക്കുന്ന ശ്രമങ്ങൾ.

ഉദ്ധരണികൾ

  1. അധികൃത CUID GitHub Repository
  2. CUID2 സ്പെസിഫിക്കേഷൻ
  3. എലിയറ്റ്, എറിക്. "അകമ്പടിയില്ലാത്ത പരിസ്ഥിതിയിൽ ഏകീകൃത ഐഡികൾ സൃഷ്ടിക്കുന്നത്." മീഡിയം, 2015.
  4. "അകമ്പടിയില്ലാത്ത സിസ്റ്റങ്ങൾക്ക് തകരാറുകൾ ഇല്ലാത്ത ഐഡികൾ." DZone, 2018.

ഈ CUID ജനറേറ്റർ ഉപകരണം നിങ്ങളുടെ പ്രോജക്ടുകൾക്കായി CUIDകൾ എളുപ്പത്തിൽ നിർമ്മിക്കാൻ അനുവദിക്കുന്നു. പുതിയ CUID സൃഷ്ടിക്കാൻ "ജനറേറ്റ്" ബട്ടൺ ക്ലിക്ക് ചെയ്യുക, നിങ്ങളുടെ ആപ്ലിക്കേഷനുകളിൽ എളുപ്പത്തിൽ ഉപയോഗിക്കാൻ "കോപി" ബട്ടൺ ഉപയോഗിച്ച് ക്ലിപ്പ്ബോർഡിലേക്ക് കോപ്പി ചെയ്യുക.

Feedback