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 இல், CUID2 அறிமுகப்படுத்தப்பட்டது, இது முதன்மை CUID இன் சில வரம்புகளை சரிசெய்யவும், மேலும் சிறந்த செயல்திறனை மற்றும் மோதல் எதிர்ப்பை வழங்கவும்.
  4. CUID2, முதன்மை CUID இன் மேல், மேலும் பாதுகாப்பான சீரற்ற எண் உருவாக்கியைப் பயன்படுத்தி, அடையாளத்தின் மொத்த நீளத்தை அதிகரித்தது.

CUIDகளின் வளர்ச்சி விநியோகிக்கப்பட்ட அமைப்புகளின் மாறும் தேவைகளை பிரதிபலிக்கிறது மற்றும் தனித்துவ அடையாள உருவாக்கத்தில் எளிமை, பாதுகாப்பு மற்றும் செயல்திறனை சமநிலைப்படுத்துவதற்கான தொடர்ச்சியான முயற்சிகளை பிரதிபலிக்கிறது.

மேற்கோள்கள்

  1. அதிகாரிக CUID GitHub சேமிப்பு
  2. CUID2 குறிப்பியல்
  3. எலியட், எரிக். "விநியோகிக்கப்பட்ட சூழலில் தனித்துவ IDகளை உருவாக்குதல்." மீடியம், 2015.
  4. "விநியோகிக்கப்பட்ட அமைப்புகளுக்கான மோதல்-எதிர்ப்பு IDகள்." DZone, 2018.

இந்த CUID உருவாக்கி கருவி உங்கள் திட்டங்களுக்கு விரைவில் CUIDகளை உருவாக்க அனுமதிக்கிறது. புதிய CUID உருவாக்க "உருவாக்கவும்" பொத்தானை அழுத்தவும், அதை உங்கள் பயன்பாடுகளில் எளிதாகப் பயன்படுத்த "பகிர்" பொத்தானை அழுத்தவும்.

Feedback