Generieren Sie kollisionresistente eindeutige Identifikatoren (CUIDs) für verteilte Systeme, Datenbanken und Webanwendungen. Dieses Tool erstellt CUIDs, die skalierbar, sortierbar und höchst unwahrscheinlich sind, dass sie kollidieren.
Generieren Sie schnell und einfach eine kollisionresistente ID.
Ein CUID (Collision-resistant Unique IDentifier) ist ein eindeutiger Identifikator, der so konzipiert ist, dass er kollisionresistent, horizontal skalierbar und sequentiell sortierbar ist. CUIDs sind besonders nützlich in verteilten Systemen, in denen eindeutige Identifikatoren ohne Koordination zwischen Knoten generiert werden müssen.
Ein CUID besteht typischerweise aus den folgenden Komponenten:
Die genaue Struktur kann je nach CUID-Implementierung variieren, aber diese Komponenten arbeiten zusammen, um einen einzigartigen und sortierbaren Identifikator zu erstellen.
Hier ist eine visuelle Darstellung einer typischen CUID-Struktur:
CUIDs werden unter Verwendung einer Kombination aus zeitbasierten und zufälligen Komponenten generiert. Der Prozess umfasst typischerweise:
Das resultierende CUID wird typischerweise als eine Zeichenfolge aus Buchstaben und Zahlen dargestellt.
CUIDs bieten mehrere Vorteile gegenüber anderen Systemen zur eindeutigen Identifizierung:
Häufige Anwendungsfälle für CUIDs sind:
Hier sind Beispiele zur Generierung von CUIDs in verschiedenen Programmiersprachen:
1// JavaScript (unter Verwendung der 'cuid'-Bibliothek)
2const cuid = require('cuid');
3const id = cuid();
4console.log(id);
5
1## Python (unter Verwendung der 'cuid'-Bibliothek)
2import cuid
3id = cuid.cuid()
4print(id)
5
1## Ruby (unter Verwendung des 'cuid'-Gems)
2require 'cuid'
3id = Cuid::generate
4puts id
5
1// Java (unter Verwendung der 'com.github.f4b6a3.cuid'-Bibliothek)
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# (unter Verwendung des 'Cuid.Net'-NuGet-Pakets)
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 (unter Verwendung des 'endyjasmi/cuid'-Pakets)
2<?php
3require 'vendor/autoload.php';
4use Endyjasmi\Cuid\Cuid;
5
6$id = Cuid::make();
7echo $id;
8
1// Go (unter Verwendung des 'github.com/lucsky/cuid'-Pakets)
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// Swift (unter Verwendung des 'CUID'-Pakets)
2import CUID
3
4let id = CUID()
5print(id)
6
1// C++ (unter Verwendung einer benutzerdefinierten Implementierung)
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 (unter Verwendung einer benutzerdefinierten Implementierung)
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% Verwendung
12id = generateCUID();
13disp(id);
14
1## R (unter Verwendung einer benutzerdefinierten Implementierung)
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## Verwendung
12id <- generate_cuid()
13print(id)
14
1' Excel VBA (unter Verwendung einer benutzerdefinierten Implementierung)
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' Verwendung in einer Zelle
17'=GenerateCUID()
18
CUIDs wurden ursprünglich von Eric Elliott im Jahr 2012 als Lösung für das Problem der Generierung eindeutiger Identifikatoren in verteilten Systemen entwickelt. Das Konzept wurde von Twitters Snowflake-ID-System inspiriert, wurde jedoch so gestaltet, dass es einfacher implementiert und in verschiedenen Plattformen verwendet werden kann.
Die Entwicklung von CUIDs wurde durch die Notwendigkeit eines einfachen, kollisionresistenten ID-Systems vorangetrieben, das in verschiedenen Programmiersprachen und Umgebungen funktionieren kann. Elliotts Ziel war es, ein System zu schaffen, das einfach zu implementieren ist, keine zentrale Koordination erfordert und horizontal skalierbar ist.
Seit seiner Entstehung hat CUID mehrere Iterationen und Verbesserungen durchlaufen:
Die Evolution von CUIDs spiegelt die sich ändernden Bedürfnisse verteilter Systeme wider und die fortlaufenden Bemühungen, Einfachheit, Sicherheit und Leistung bei der Generierung eindeutiger Identifikatoren in Einklang zu bringen.
Dieses CUID-Generator-Tool ermöglicht es Ihnen, schnell CUIDs für Ihre Projekte zu generieren. Klicken Sie einfach auf die Schaltfläche "Generieren", um ein neues CUID zu erstellen, und verwenden Sie die Schaltfläche "Kopieren", um es in Ihre Zwischenablage zu kopieren, um es einfach in Ihren Anwendungen zu verwenden.
Entdecken Sie weitere Tools, die für Ihren Workflow nützlich sein könnten