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ಗಳ ಸಾಮಾನ್ಯ ಬಳಕೆದಾರಿಕೆಗಳು:

  • ಡೇಟಾಬೇಸ್ ಪ್ರಾಥಮಿಕ ಕೀಗಳು
  • ವಿತರಣಾ ವ್ಯವಸ್ಥೆಗಳು, ಅಲ್ಲಿ ವಿಶಿಷ್ಟ IDಗಳನ್ನು ಹಲವಾರು ನೋಡ್‌ಗಳಲ್ಲಿ ಉತ್ಪಾದಿಸಲು ಅಗತ್ಯವಿದೆ
  • ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್‌ಗಳಲ್ಲಿ ಸೆಷನ್ IDಗಳು
  • ವಿಶ್ಲೇಷಣಾ ವ್ಯವಸ್ಥೆಗಳಲ್ಲಿ ಘಟನೆಗಳನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡುವುದು
  • ಕ್ಲೌಡ್ ಸ್ಟೋರೆಜ್ ವ್ಯವಸ್ಥೆಗಳಲ್ಲಿ ಫೈಲ್ ಅಥವಾ ಸಂಪತ್ತುಗಳ ಹೆಸರು

ಕೋಡ್ ಉದಾಹರಣೆಗಳು

ಇಲ್ಲಿ ವಿವಿಧ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯಲ್ಲಿ 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 ರಲ್ಲಿ ಎರಿಕ್ ಎಲಿಯಟ್ ಅವರಿಂದ ವಿತರಣಾ ವ್ಯವಸ್ಥೆಗಳಲ್ಲಿ ವಿಶಿಷ್ಟ ಗುರುತಿಗಳನ್ನು ಉತ್ಪಾದಿಸುವ ಸಮಸ್ಯೆಗೆ ಪರಿಹಾರವಾಗಿ ಅಭಿವೃದ್ಧಿಪಡಿಸಲಾಯಿತು. ಈ ಪರಿಕಲ್ಪನೆಯು ಟ್ವಿಟರ್‌ನ ಸ್ನೋಫ್ಲೇಕ್ ID ವ್ಯವಸ್ಥೆಯಿಂದ ಪ್ರೇರಿತವಾಗಿತ್ತು ಆದರೆ ವಿವಿಧ ವೇದಿಕೆಗಳಲ್ಲಿ ಸುಲಭವಾಗಿ ಕಾರ್ಯಗತಗೊಳಿಸಲು ಮತ್ತು ಬಳಸಲು ವಿನ್ಯಾಸಗೊಳಿಸಲಾಯಿತು.

CUIDಗಳ ಅಭಿವೃದ್ಧಿ ಕೇಂದ್ರ ಸಂಯೋಜನೆಯ ಅಗತ್ಯವಿಲ್ಲದೆ ಸರಳ, ಝುಲಾಯಿತ್ತಿಲ್ಲದ ID ವ್ಯವಸ್ಥೆಯನ್ನು ಉತ್ಪಾದಿಸಲು ಅಗತ್ಯದಿಂದ ಪ್ರೇರಿತವಾಗಿತ್ತು. ಎಲಿಯಟ್ ಅವರ ಗುರಿ ಸುಲಭವಾಗಿ ಕಾರ್ಯಗತಗೊಳಿಸಲು, ಕೇಂದ್ರ ಸಂಯೋಜನೆಯ ಅಗತ್ಯವಿಲ್ಲದ ಮತ್ತು ಹಾರಿಜಾಂಟಲ್‌ವಾಗಿ ಸ್ಕೇಲ್ ಆಗುವ ವ್ಯವಸ್ಥೆಯನ್ನು ರಚಿಸಲು ಆಗಿತ್ತು.

ಅದರ ಆರಂಭದಿಂದ, CUID ಹಲವಾರು ಹಂತಗಳನ್ನು ಮತ್ತು ಸುಧಾರಣಗಳನ್ನು ಅನುಭವಿಸಿದೆ:

  1. ಮೂಲ CUID ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆ ಸರಳತೆ ಮತ್ತು ಬಳಸಲು ಸುಲಭತೆಗೆ ಕೇಂದ್ರೀಕೃತವಾಗಿತ್ತು.
  2. ಅಂಗೀಕಾರವು ಹೆಚ್ಚಾದಂತೆ, ಸಮುದಾಯವು ವಿವಿಧ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳಲ್ಲಿ ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಗಳನ್ನು ಕೊಡುಗೆ ನೀಡಿತು.
  3. 2021 ರಲ್ಲಿ, ಮೂಲ CUID ನ ಕೆಲವು ಮಿತಿಗಳನ್ನು ಪರಿಹರಿಸಲು ಮತ್ತು ಉತ್ತಮ ಕಾರ್ಯಕ್ಷಮತೆ ಮತ್ತು ಝುಲಾಯಿತ್ತಿಲ್ಲದವನ್ನು ಒದಗಿಸಲು CUID2 ಅನ್ನು ಪರಿಚಯಿಸಲಾಯಿತು.
  4. CUID2 ಮೂಲವನ್ನು ಸುಧಾರಿತ random number generator ಅನ್ನು ಬಳಸುವ ಮೂಲಕ ಮತ್ತು ಗುರುತಿನ ಒಟ್ಟು ಉದ್ದವನ್ನು ಹೆಚ್ಚಿಸುವ ಮೂಲಕ ಉತ್ತಮಗೊಳಿಸಿತು.

CUIDಗಳ ಅಭಿವೃದ್ಧಿಯು ವಿತರಣಾ ವ್ಯವಸ್ಥೆಗಳ ಬದಲಾಯಿಸುತ್ತಿರುವ ಅಗತ್ಯಗಳನ್ನು ಮತ್ತು ವಿಶಿಷ್ಟ ಗುರುತಿನ ಉತ್ಪಾದನೆಯಲ್ಲಿ ಸರಳತೆ, ಭದ್ರತೆ ಮತ್ತು ಕಾರ್ಯಕ್ಷಮತೆಯ ನಡುವಿನ ಸಮತೋಲನವನ್ನು ಸಾಧಿಸಲು ನಿರಂತರ ಪ್ರಯತ್ನಗಳನ್ನು ಪ್ರತಿಬಿಂಬಿಸುತ್ತದೆ.

ಉಲ್ಲೇಖಗಳು

  1. ಅಧಿಕಾರಿಕ CUID GitHub Repository
  2. CUID2 ವಿಶೇಷಣ
  3. ಎಲಿಯಟ್, ಎರಿಕ್. "ವಿತರಣಾ ಪರಿಸರದಲ್ಲಿ ವಿಶಿಷ್ಟ IDಗಳನ್ನು ಉತ್ಪಾದಿಸುವುದು." ಮೀಡಿಯಮ್, 2015.
  4. "ವಿತರಣಾ ವ್ಯವಸ್ಥೆಗಳಿಗೆ ಝುಲಾಯಿತ್ತಿಲ್ಲದ IDಗಳು." DZone, 2018.

ಈ CUID ಜನರೇಟರ್ ಸಾಧನವು ನಿಮ್ಮ ಯೋಜನೆಗಳಿಗೆ ತ್ವರಿತವಾಗಿ CUIDಗಳನ್ನು ಉತ್ಪಾದಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. ಹೊಸ CUID ಅನ್ನು ರಚಿಸಲು "ಜನರೇಟ್" ಬಟನ್ ಅನ್ನು ಕ್ಲಿಕ್ ಮಾಡಿ, ಮತ್ತು ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್‌ಗಳಲ್ಲಿ ಸುಲಭವಾಗಿ ಬಳಸಲು "ಕಾಪಿ" ಬಟನ್ ಅನ್ನು ಬಳಸಿರಿ.

Feedback