Whiz Tools

யூனிக்வ் அடையாள உருவாக்கி

உருவாக்கப்பட்ட யூனிக்வ் அடையாளம்

யூனிக்வ் அடையாள அமைப்பு
கால குறைவு

UUID உருவாக்கி

அறிமுகம்

ஒரு உலகளாவிய தனித்தன்மை அடையாளம் (UUID) என்பது கணினி அமைப்புகளில் தகவல்களை அடையாளம் காண பயன்படுத்தப்படும் 128-பிட் எண் ஆகும். UUIDகள் திறந்த மென்பொருள் அடிப்படையால் (OSF) பகிர்ந்தளிக்கப்பட்ட கணினி சூழல் (DCE) என்ற பகுதியாக நிலைபடுத்தப்பட்டுள்ளன. இந்த அடையாளங்கள் இடம் மற்றும் நேரம் ஆகியவற்றில் தனித்தன்மை கொண்டதாக வடிவமைக்கப்பட்டுள்ளன, இதனால் அவை பகிர்ந்தளிக்கப்பட்ட அமைப்புகள் மற்றும் பிறவற்றில் பல்வேறு பயன்பாடுகளுக்கு சிறந்தது.

இந்த UUID உருவாக்கி கருவி, பதிப்பு 1 (நேர அடிப்படையிலான) மற்றும் பதிப்பு 4 (சீரற்ற) UUIDகளை உருவாக்க அனுமதிக்கிறது. இந்த அடையாளங்கள் தனித்தன்மை தேவைப்படும் பல்வேறு சூழ்நிலைகளில் பயனுள்ளதாக உள்ளன, உதாரணமாக தரவுத்தளம் விசைகள், பகிர்ந்தளிக்கப்பட்ட அமைப்புகள் மற்றும் நெட்வொர்க் நெறிமுறைகள்.

UUIDகள் எப்படி செயல்படுகிறது

UUID அமைப்பு

ஒரு UUID பொதுவாக 32 ஹெக்சாடெசிமல் இலக்கங்களாக பிரதிநிதித்துவப்படுத்தப்படுகிறது, இது ஐந்து குழுக்களில் பிரிக்கப்பட்டு, ஹைபன் மூலம் பிரிக்கப்பட்டுள்ளது, 8-4-4-4-12 என்ற வடிவத்தில், மொத்தம் 36 எழுத்துக்கள் (32 எழுத்தியல் இலக்கங்கள் மற்றும் 4 ஹைபன்கள்). எடுத்துக்காட்டாக:

550e8400-e29b-41d4-a716-446655440000

ஒரு UUID இன் 128 பிட்கள் குறிப்பிட்ட துறைகளில் பிரிக்கப்பட்டுள்ளன, ஒவ்வொரு UUID பதிப்பின் அடிப்படையில் வெவ்வேறு தகவல்களை கொண்டுள்ளன:

  • 32 பிட்கள் time_low துறைக்கு
  • 16 பிட்கள் time_mid துறைக்கு
  • 16 பிட்கள் time_hi_and_version துறைக்கு
  • 8 பிட்கள் clock_seq_hi_and_reserved துறைக்கு
  • 8 பிட்கள் clock_seq_low துறைக்கு
  • 48 பிட்கள் node துறைக்கு

UUID அமைப்பை விளக்குவதற்கான ஒரு வரைபடம்:

A B C D E F A: time_low (32 பிட்கள்) B: time_mid (16 பிட்கள்) C: time_hi_and_version (16 பிட்கள்) D: clock_seq_hi_and_reserved (8 பிட்கள்) E: clock_seq_low (8 பிட்கள்) F: node (48 பிட்கள்)

UUID பதிப்புகள்

UUIDகளின் பல பதிப்புகள் உள்ளன, ஒவ்வொன்றிற்கும் தனித்தன்மை உருவாக்கும் முறை உள்ளது:

  1. பதிப்பு 1 (நேர அடிப்படையிலான): தற்போதைய நேரம் மற்றும் கணினியின் MAC முகவரியைப் பயன்படுத்துகிறது.
  2. பதிப்பு 2 (DCE பாதுகாப்பு): பதிப்பு 1 இக்கருவியுடன் ஒத்ததாக இருந்தாலும், உள்ளூர் மண்டல அடையாளத்தை உள்ளடக்கியது.
  3. பதிப்பு 3 (பெயர் அடிப்படையிலான, MD5): ஒரு பெயருக்கான பெயர் அடையாளம் மற்றும் namespace அடையாளத்தைப் பறிக்கையிடுவதன் மூலம் உருவாக்கப்படுகிறது.
  4. பதிப்பு 4 (சீரற்ற): ஒரு சீரற்ற அல்லது புனையப்பட்ட எண்ணை பயன்படுத்தி உருவாக்கப்படுகிறது.
  5. பதிப்பு 5 (பெயர் அடிப்படையிலான, SHA-1): பதிப்பு 3 இக்கருவியுடன் ஒத்ததாக இருந்தாலும், SHA-1 பறிக்கையிடுதலைப் பயன்படுத்துகிறது.

இந்த கருவி பதிப்பு 1 மற்றும் பதிப்பு 4 UUIDகளை உருவாக்குவதில் கவனம் செலுத்துகிறது.

சூத்திரம்

பதிப்பு 1 UUID உருவாக்கம்

பதிவு 1 UUIDகள் கீழ்காணும் கூறுகளைப் பயன்படுத்தி உருவாக்கப்படுகின்றன:

  1. நேரம்: அக்டோபர் 15, 1582 (கிறிஸ்துவியல் காலண்டரின் கிரேகோரியன் மறுசீரமைப்பின் தேதி) முதல் 100-நானோசெகண்ட் இடைவெளிகள் எண்ணிக்கையை பிரதிநிதித்துவப்படுத்தும் 60-பிட் மதிப்பு.
  2. கடிகார வரிசை: கடிகாரத்தை பின்னுக்கு அமைக்கும்போது நகல்களை தவிர்க்க 14-பிட் மதிப்பு.
  3. நோட்: பொதுவாக கணினியின் MAC முகவரியிலிருந்து பெறப்படும் 48-பிட் மதிப்பு.

பதிவு 1 UUID உருவாக்குவதற்கான சூத்திரம்:

UUID = (timestamp * 2^64) + (clock_sequence * 2^48) + node

பதிப்பு 4 UUID உருவாக்கம்

பதிவு 4 UUIDகள் குற்றவியல் ரீதியாக வலுவான சீரற்ற எண் உருவாக்கி மூலம் உருவாக்கப்படுகின்றன. சூத்திரம் எளிதாகவே:

UUID = random_128_bit_number

குறிப்பிட்ட பிட்கள் பதிப்பு (4) மற்றும் மாறுபாட்டைப் குறிக்க அமைக்கப்பட்டுள்ளன.

பயன்பாட்டு வழிகள்

UUIDகளின் பல்வேறு கணினி அறிவியல் மற்றும் மென்பொருள் பொறியியலின் பகுதிகளில் பல்வேறு பயன்பாடுகள் உள்ளன:

  1. தரவுத்தளம் விசைகள்: UUIDகள் பொதுவாக தரவுத்தளங்களில் முதன்மை விசைகளாக பயன்படுத்தப்படுகின்றன, குறிப்பாக பல்வேறு நோட்கள் ஒரே நேரத்தில் பதிவுகள் உருவாக்கும் போது.

  2. பகிர்ந்தளிக்கப்பட்ட அமைப்புகள்: பெரிய அளவிலான பகிர்ந்தளிக்கப்பட்ட அமைப்புகளில், UUIDகள் பல்வேறு நோட்கள் அல்லது தரவுத்தள மையங்களில் வளங்கள், பரிவர்த்தனைகள் அல்லது நிகழ்வுகளை தனித்தன்மை அடையாளம் காண உதவுகின்றன.

  3. உள்ளடக்கம் முகவரித்தல்: UUIDகள் உள்ளடக்கத்தை உள்ளடக்க முகவரியிடும் சேமிப்பு அமைப்புகளில் தனித்தன்மை அடையாளங்கள் உருவாக்க பயன்படுத்தப்படலாம்.

  4. அமர்வு மேலாண்மை: வலை பயன்பாடுகள் பொதுவாக UUIDகளை பயனர் அமர்வுகளை நிர்வகிக்க பயன்படுத்துகின்றன, ஒவ்வொரு அமர்வுக்கும் தனித்தன்மை அடையாளம் உள்ளது.

  5. IoT சாதனம் அடையாளம்: இணையதள பொருட்கள் (IoT) பயன்பாடுகளில், UUIDகள் ஒரு நெட்வொர்க்கில் தனித்தன்மை கொண்ட சாதனங்களை அடையாளம் காண பயன்படுத்தப்படலாம்.

மாற்றுகள்

UUIDகள் பரவலாக பயன்படுத்தப்படுகின்றன, இருப்பினும் தனித்தன்மை அடையாளங்களை உருவாக்குவதற்கான மாற்று அணுகுமுறைகள் உள்ளன:

  1. தானாக அதிகரிக்கும் IDகள்: சிம்பிள் மற்றும் தனித்தரவுத்தள அமைப்புகளில் பொதுவாக பயன்படுத்தப்படும், ஆனால் பகிர்ந்தளிக்கப்பட்ட சூழ்நிலைகளுக்கு ஏற்றதாக இல்லை.

  2. நேர அடிப்படையிலான IDகள்: நேரத்திற்கேற்ப தரவுகளுக்கு பயனுள்ளதாக இருக்கலாம் ஆனால் அதிக-சேவை சூழ்நிலைகளில் மோதல் பிரச்சினைகளை சந்திக்கலாம்.

  3. ஸ்னோஃப்ளேக் IDகள்: ட்விட்டரால் உருவாக்கப்பட்ட, இந்த IDகள் நேரம் மற்றும் தொழிலாளி எண்ணிக்கையை இணைத்து, பகிர்ந்தளிக்கப்பட்ட அமைப்புகளில் தனித்தன்மை IDகளை உருவாக்குகின்றன.

  4. ULID (உலகளாவிய தனித்தன்மை வரிசைப்படுத்தக்கூடிய அடையாளம்): UUIDகளுக்கு மாறாக மனிதருக்கு நட்பு மற்றும் வரிசைப்படுத்தக்கூடியதாக இருப்பதற்கான புதிய மாற்று.

வரலாறு

UUIDகளின் கருத்து முதலில் ஆபோலோ நெட்வொர்க் கணினி அமைப்பில் அறிமுகம் செய்யப்பட்டது மற்றும் பின்னர் 1990களில் திறந்த மென்பொருள் அடிப்படையால் (OSF) பகிர்ந்தளிக்கப்பட்ட கணினி சூழல் (DCE) என்ற பகுதியாக நிலைபடுத்தப்பட்டது. ஆரம்பத்தில், 1997 இல் ISO/IEC 11578:1996 என்ற பெயரில் வெளியிடப்பட்டது மற்றும் 2005 இல் ISO/IEC 9834-8:2005 என்ற பகுதியாக மறுசீரமைக்கப்பட்டது.

UUID வரலாற்றில் முக்கியமான நிகழ்வுகள்:

  • 1980கள்: ஆபோலோ கணினி நிறுவனம் UUID கருத்தை அவர்களது நெட்வொர்க் கணினி அமைப்பிற்காக உருவாக்குகிறது.
  • 1997: முதல் UUID நிலைபடுத்தல் ISO/IEC 11578:1996 என்ற பெயரில் வெளியிடப்பட்டது.
  • 2005: UUID நிலைபடுத்தல் மறுசீரமைக்கப்பட்டு ISO/IEC 9834-8:2005 என்ற பகுதியாக வெளியிடப்பட்டது.
  • 2009: RFC 4122 UUID வடிவம் மற்றும் இன்று பயன்படுத்தப்படும் உருவாக்கக் கணக்கீடுகளை வரையறுக்கிறது.

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

குறியீட்டு எடுத்துக்காட்டுகள்

பல்வேறு நிரலாக்க மொழிகளில் UUIDகளை உருவாக்குவதற்கான எடுத்துக்காட்டுகள்:

import uuid

## பதிப்பு 4 (சீரற்ற) UUID உருவாக்கவும்
random_uuid = uuid.uuid4()
print(f"பதிப்பு 4 UUID: {random_uuid}")

## பதிப்பு 1 (நேர அடிப்படையிலான) UUID உருவாக்கவும்
time_based_uuid = uuid.uuid1()
print(f"பதிப்பு 1 UUID: {time_based_uuid}")
const { v1: uuidv1, v4: uuidv4 } = require('uuid');

// பதிப்பு 4 (சீரற்ற) UUID உருவாக்கவும்
const randomUuid = uuidv4();
console.log(`பதிப்பு 4 UUID: ${randomUuid}`);

// பதிப்பு 1 (நேர அடிப்படையிலான) UUID உருவாக்கவும்
const timeBasedUuid = uuidv1();
console.log(`பதிப்பு 1 UUID: ${timeBasedUuid}`);
import java.util.UUID;

public class UuidGenerator {
    public static void main(String[] args) {
        // பதிப்பு 4 (சீரற்ற) UUID உருவாக்கவும்
        UUID randomUuid = UUID.randomUUID();
        System.out.println("பதிப்பு 4 UUID: " + randomUuid);

        // பதிப்பு 1 (நேர அடிப்படையிலான) UUID உருவாக்கவும்
        UUID timeBasedUuid = UUID.fromString(new com.eaio.uuid.UUID().toString());
        System.out.println("பதிப்பு 1 UUID: " + timeBasedUuid);
    }
}
require 'securerandom'

## பதிப்பு 4 (சீரற்ற) UUID உருவாக்கவும்
random_uuid = SecureRandom.uuid
puts "பதிப்பு 4 UUID: #{random_uuid}"

## Ruby இல் பதிப்பு 1 UUIDகளுக்கான உள்ளமைவு முறை இல்லை
## அதற்காக 'uuidtools' என்ற ஜெம் பயன்படுத்த வேண்டும்
<?php
// பதிப்பு 4 (சீரற்ற) UUID உருவாக்கவும்
$randomUuid = sprintf('%04x%04x-%04x-%04x-%04x-%04x%04x%04x',
    mt_rand(0, 0xffff), mt_rand(0, 0xffff),
    mt_rand(0, 0xffff),
    mt_rand(0, 0x0fff) | 0x4000,
    mt_rand(0, 0x3fff) | 0x8000,
    mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0xffff)
);
echo "பதிப்பு 4 UUID: " . $randomUuid . "\n";

// PHP இல் பதிப்பு 1 UUIDகளுக்கான உள்ளமைவு முறை இல்லை
// அதற்காக 'ramsey/uuid' என்ற நூலகத்தைப் பயன்படுத்த வேண்டும்
?>

மேற்கோள்கள்

  1. Leach, P., Mealling, M., & Salz, R. (2005). A Universally Unique IDentifier (UUID) URN Namespace. RFC 4122. https://tools.ietf.org/html/rfc4122
  2. International Organization for Standardization. (2005). Information technology – Open Systems Interconnection – Procedures for the operation of OSI Registration Authorities: Generation and registration of Universally Unique Identifiers (UUIDs) and their use as ASN.1 Object Identifier components. ISO/IEC 9834-8:2005. https://www.iso.org/standard/62795.html
  3. Universally unique identifier. (2023). In Wikipedia. https://en.wikipedia.org/wiki/Universally_unique_identifier
  4. Snowflake ID. (2023). In Wikipedia. https://en.wikipedia.org/wiki/Snowflake_ID
  5. ULID Spec. (n.d.). GitHub. https://github.com/ulid/spec
Feedback