CUID உருவாக்கி: மோதல்-எதிர்ப்பு அடையாளங்களை உருவாக்கவும்
விநியோகிக்கப்பட்ட அமைப்புகள், தரவுத்தொகுப்புகள் மற்றும் வலை பயன்பாடுகளுக்கான மோதல்-எதிர்ப்பு தனித்துவ அடையாளங்களை (CUID) உருவாக்கவும். இந்த கருவி CUID-களை உருவாக்குகிறது, அவை அளவிடத்தக்க, வரிசைப்படுத்தத்தக்க மற்றும் மோதுவதற்கு மிகவும் குறைவானவை.
CUID உருவாக்கி
தகராறுக்கு எதிரான அடையாளத்தை விரைவாக மற்றும் எளிதாக உருவாக்கவும்.
CUID அமைப்பு
காலமூலம்:
சீரற்ற:
ஆவணங்கள்
CUID உருவாக்கி
அறிமுகம்
CUID (Collision-resistant Unique IDentifier) என்பது மோதல்-எதிர்ப்பு மற்றும் நிலையான வகையில் வரிசைப்படுத்தப்படக்கூடிய தனித்துவ அடையாளமாக வடிவமைக்கப்பட்டுள்ளது. CUIDகள் ஒருங்கிணைப்பின்றி அடையாளங்களை உருவாக்க வேண்டிய விநியோகிக்கப்பட்ட அமைப்புகளில் மிகவும் பயனுள்ளதாக உள்ளன.
CUIDக்களின் கட்டமைப்பு
ஒரு CUID பொதுவாக கீழ்காணும் கூறுகளை கொண்டுள்ளது:
- நேரம்: தற்போதைய நேரத்தின் பிரதிநிதித்துவம்
- எண்ணிக்கை: ஒரே மில்லியனில் தனித்துவத்தை உறுதி செய்யும் வரிசை எண்ணிக்கை
- கிளையண்ட் விருப்பம்: CUID உருவாக்கும் இயந்திரம் அல்லது செயலின் தனித்துவ அடையாளம்
- சீரற்ற கூறு: மோதல் வாய்ப்பை மேலும் குறைக்க கூடுதல் சீரற்ற தரவுகள்
CUID செயலாக்கத்தின் அடிப்படையில் சரியான கட்டமைப்பு மாறுபடலாம், ஆனால் இந்த கூறுகள் ஒன்றிணைந்து தனித்துவமான மற்றும் வரிசைப்படுத்தக்கூடிய அடையாளத்தை உருவாக்குகின்றன.
இங்கே ஒரு வழிமுறை CUID கட்டமைப்பின் காட்சி:
CUIDகள் எப்படி உருவாக்கப்படுகின்றன
CUIDகள் நேர அடிப்படையிலான மற்றும் சீரற்ற கூறுகளை இணைத்து உருவாக்கப்படுகின்றன. இந்த செயல்முறை பொதுவாக:
- தற்போதைய நேரத்தை பெறுதல்
- எண்ணிக்கையை (அது காலம் காலம் மீண்டும் அமைக்கப்படும்) அதிகரித்தல்
- கிளையண்ட் விருப்பத்தை உருவாக்குதல் (பொதுவாக ஒவ்வொரு அமர்விற்கோ அல்லது செயலியின் தொடக்கத்திற்கோ ஒருமுறை செய்யப்படுகிறது)
- சீரற்ற தரவை சேர்த்தல்
- இந்த கூறுகளை குறிப்பிட்ட வடிவத்தில் இணைத்தல்
முடிவில் உருவாக்கப்படும் CUID பொதுவாக எழுத்துக்கள் மற்றும் எண்களின் சரம் வடிவத்தில் பிரதிநிதித்துவம் செய்யப்படுகிறது.
நன்மைகள் மற்றும் பயன்பாடுகள்
CUIDகள் பிற தனித்துவ அடையாள அமைப்புகளுக்கு எதிராக பல நன்மைகளை வழங்குகின்றன:
- மோதல் எதிர்ப்பு: நேரம், எண்ணிக்கை மற்றும் சீரற்ற தரவின் இணைப்பு மோதல்களை மிகவும் சாத்தியமற்றது, விநியோகிக்கப்பட்ட அமைப்புகளில் கூட.
- ஆழ்மட்ட அளவீடு: CUIDகள் பல இயந்திரங்களில் ஒருங்கிணைப்பின்றி உருவாக்கப்படலாம்.
- வரிசைப்படுத்தல்: நேரம் கூறு CUIDகளை காலவரிசையில் வரிசைப்படுத்த அனுமதிக்கிறது.
- URL-க்கு நட்பு: CUIDகள் பொதுவாக URL-க்கு பாதுகாப்பான எழுத்துக்களை கொண்டுள்ளன.
CUIDகளுக்கான பொதுவான பயன்பாடுகள்:
- தரவுத்தொகுப்பின் முதன்மை திறவுகோல்கள்
- பல நொடிகளில் தனித்துவ IDகளை உருவாக்க வேண்டிய விநியோகிக்கப்பட்ட அமைப்புகள்
- வலை பயன்பாடுகளில் அமர்வு IDகள்
- பகுப்பாய்வு அமைப்புகளில் நிகழ்வுகளை கண்காணித்தல்
- மேக சேமிப்புத்தளங்களில் கோப்பு அல்லது வளங்களை பெயரிடுதல்
குறியீட்டு எடுத்துக்காட்டுகள்
இங்கே பல நிரலாக்க மொழிகளில் CUIDகளை உருவாக்குவதற்கான எடுத்துக்காட்டுகள் உள்ளன:
1// ஜாவாஸ்கிரிப்ட் ( 'cuid' நூலகத்தைப் பயன்படுத்தி)
2const cuid = require('cuid');
3const id = cuid();
4console.log(id);
5
1## பைதான் ( 'cuid' நூலகத்தைப் பயன்படுத்தி)
2import cuid
3id = cuid.cuid()
4print(id)
5
1## ரூபி ( 'cuid' ஜெம்களைப் பயன்படுத்தி)
2require 'cuid'
3id = Cuid::generate
4puts id
5
1// ஜாவா ( 'com.github.f4b6a3.cuid' நூலகத்தைப் பயன்படுத்தி)
2import com.github.f4b6a3.cuid.Cuid;
3
4public class CuidExample {
5 public static void main(String[] args) {
6 String id = Cuid.createCuid();
7 System.out.println(id);
8 }
9}
10
1// C# ( 'Cuid.Net' NuGet தொகுப்பைப் பயன்படுத்தி)
2using Cuid;
3
4class Program
5{
6 static void Main(string[] args)
7 {
8 string id = CuidGenerator.Generate();
9 Console.WriteLine(id);
10 }
11}
12
1// PHP ( 'endyjasmi/cuid' தொகுப்பைப் பயன்படுத்தி)
2<?php
3require 'vendor/autoload.php';
4use Endyjasmi\Cuid\Cuid;
5
6$id = Cuid::make();
7echo $id;
8
1// கோ ( 'github.com/lucsky/cuid' தொகுப்பைப் பயன்படுத்தி)
2package main
3
4import (
5 "fmt"
6 "github.com/lucsky/cuid"
7)
8
9func main() {
10 id := cuid.New()
11 fmt.Println(id)
12}
13
1// ஸ்விஃப்ட் ( 'CUID' தொகுப்பைப் பயன்படுத்தி)
2import CUID
3
4let id = CUID()
5print(id)
6
1// C++ (ஒரு தனிப்பயன் செயலாக்கத்தைப் பயன்படுத்தி)
2#include <iostream>
3#include <chrono>
4#include <random>
5#include <sstream>
6#include <iomanip>
7
8std::string generateCUID() {
9 auto now = std::chrono::system_clock::now();
10 auto now_ms = std::chrono::time_point_cast<std::chrono::milliseconds>(now);
11 auto value = now_ms.time_since_epoch();
12 long duration = value.count();
13
14 std::random_device rd;
15 std::mt19937 gen(rd());
16 std::uniform_int_distribution<> dis(0, 35);
17
18 std::stringstream ss;
19 ss << 'c';
20 ss << std::hex << std::setfill('0') << std::setw(8) << duration;
21 for (int i = 0; i < 8; i++) {
22 int r = dis(gen);
23 ss << (char)(r < 10 ? '0' + r : 'a' + r - 10);
24 }
25 return ss.str();
26}
27
28int main() {
29 std::string id = generateCUID();
30 std::cout << id << std::endl;
31 return 0;
32}
33
1% MATLAB (ஒரு தனிப்பயன் செயலாக்கத்தைப் பயன்படுத்தி)
2function id = generateCUID()
3 timestamp = dec2hex(round(posixtime(datetime('now'))*1000), 8);
4 random = '';
5 for i = 1:8
6 random = [random char(randi([48 57 97 122]))];
7 end
8 id = ['c' timestamp random];
9end
10
11% பயன்பாடு
12id = generateCUID();
13disp(id);
14
1## R (ஒரு தனிப்பயன் செயலாக்கத்தைப் பயன்படுத்தி)
2library(lubridate)
3
4generate_cuid <- function() {
5 timestamp <- format(as.numeric(now()) * 1000, scientific = FALSE)
6 timestamp <- substr(timestamp, 1, 8)
7 random <- paste0(sample(c(0:9, letters[1:6]), 8, replace = TRUE), collapse = "")
8 paste0("c", timestamp, random)
9}
10
11## பயன்பாடு
12id <- generate_cuid()
13print(id)
14
1' Excel VBA (ஒரு தனிப்பயன் செயலாக்கத்தைப் பயன்படுத்தி)
2Function GenerateCUID() As String
3 Dim timestamp As String
4 Dim random As String
5 Dim i As Integer
6
7 timestamp = Right("00000000" & Hex(CLng(CDbl(Now()) * 86400000)), 8)
8
9 For i = 1 To 8
10 random = random & Mid("0123456789abcdef", Int(Rnd() * 16) + 1, 1)
11 Next i
12
13 GenerateCUID = "c" & timestamp & random
14End Function
15
16' ஒரு செல்லில் பயன்பாடு
17'=GenerateCUID()
18
வரலாறு மற்றும் வளர்ச்சி
CUIDகள் 2012 இல் எரிக் எலியட் மூலம் உருவாக்கப்பட்டன, இது விநியோகிக்கப்பட்ட அமைப்புகளில் தனித்துவ அடையாளங்களை உருவாக்குவதற்கான பிரச்சினைக்கு தீர்வாகும். இந்த கருத்து ட்விட்டரின் ஸ்னோஃப்ளேக் ID அமைப்பால் ஊக்கமளிக்கப்பட்டது, ஆனால் பல்வேறு மேடைகளில் எளிதாக செயல்படுத்தப்படுவதற்காக வடிவமைக்கப்பட்டது.
CUIDகளின் வளர்ச்சி ஒருங்கிணைப்பின்றி அடையாளங்களை உருவாக்குவதற்கான எளிமையான, மோதல்-எதிர்ப்பு ID அமைப்பின் தேவையை அடிப்படையாகக் கொண்டது. எலியட் உருவாக்குவதற்கான நோக்கம் எளிதாக செயல்படுத்தப்படக்கூடிய, மைய ஒருங்கிணைப்பை தேவையற்றது மற்றும் ஆழ்மட்டமாக அளவீடு செய்யக்கூடிய அமைப்பை உருவாக்குவது.
இதுவரை, CUIDகள் பல முறைமைகள் மற்றும் மேம்பாடுகளை கடந்துள்ளன:
- முதன்மை CUID செயலாக்கம் எளிமை மற்றும் பயன்படுத்த எளிதாக கவனம் செலுத்தியது.
- ஏற்றுக்கொள்ளல் அதிகரித்த போது, சமுதாயம் பல நிரலாக்க மொழிகளில் செயலாக்கங்களை வழங்கியது.
- 2021 இல், CUID2 அறிமுகப்படுத்தப்பட்டது, இது முதன்மை CUID இன் சில வரம்புகளை சரிசெய்யவும், மேலும் சிறந்த செயல்திறனை மற்றும் மோதல் எதிர்ப்பை வழங்கவும்.
- CUID2, முதன்மை CUID இன் மேல், மேலும் பாதுகாப்பான சீரற்ற எண் உருவாக்கியைப் பயன்படுத்தி, அடையாளத்தின் மொத்த நீளத்தை அதிகரித்தது.
CUIDகளின் வளர்ச்சி விநியோகிக்கப்பட்ட அமைப்புகளின் மாறும் தேவைகளை பிரதிபலிக்கிறது மற்றும் தனித்துவ அடையாள உருவாக்கத்தில் எளிமை, பாதுகாப்பு மற்றும் செயல்திறனை சமநிலைப்படுத்துவதற்கான தொடர்ச்சியான முயற்சிகளை பிரதிபலிக்கிறது.
மேற்கோள்கள்
- அதிகாரிக CUID GitHub சேமிப்பு
- CUID2 குறிப்பியல்
- எலியட், எரிக். "விநியோகிக்கப்பட்ட சூழலில் தனித்துவ IDகளை உருவாக்குதல்." மீடியம், 2015.
- "விநியோகிக்கப்பட்ட அமைப்புகளுக்கான மோதல்-எதிர்ப்பு IDகள்." DZone, 2018.
இந்த CUID உருவாக்கி கருவி உங்கள் திட்டங்களுக்கு விரைவில் CUIDகளை உருவாக்க அனுமதிக்கிறது. புதிய CUID உருவாக்க "உருவாக்கவும்" பொத்தானை அழுத்தவும், அதை உங்கள் பயன்பாடுகளில் எளிதாகப் பயன்படுத்த "பகிர்" பொத்தானை அழுத்தவும்.
பின்னூட்டம்
இந்த கருவி பற்றி பின்னூட்டம் அளிக்க தொடங்க பின்னூட்டத்தை கிளிக் செய்யவும்
சம்பந்தப்பட்ட கருவிகள்
உங்கள் வேலைப்பாட்டுக்கு பயனுள்ளதாக இருக்கக்கூடிய மேலும் கருவிகளை கண்டறியவும்