நானோ ஐடி உருவாக்கி - பாதுகாப்பான மற்றும் தனிப்பட்ட அடையாளங்கள்
நானோ ஐடியைப் பயன்படுத்தி பாதுகாப்பான, தனிப்பட்ட மற்றும் URL-இனிய அடையாளங்களை உருவாக்கவும். வலை வளர்ச்சி, பகிர்ந்தாடப்பட்ட அமைப்புகள் மற்றும் தரவுத்தொகுப்புப் மேலாண்மையில் பல்வேறு பயன்பாடுகளுக்கு நீளம் மற்றும் எழுத்துப் தொகுப்பைப் தனிப்பயனாக்கவும்.
நானோ ஐடி உருவாக்கி
உருவாக்கிய நானோ ஐடி
காண்பிப்பு
ஆவணங்கள்
நானோ ஐடி ஜெனரேட்டர்
அறிமுகம்
ஒரு நானோ ஐடி என்பது சிறிய, பாதுகாப்பான, URL-இற்கு நட்பு தனித்துவமான சரம் ஐடி ஜெனரேட்டர் ஆகும். இது பல்வேறு பயன்பாடுகளுக்கு அடையாளங்களை உருவாக்குவதற்காக சுருக்கமான, வரிசைமுறை இல்லாத மற்றும் மோதல்-எதிர்ப்பு அடையாளங்களை உருவாக்க வடிவமைக்கப்பட்டுள்ளது. இந்த கருவி நீங்கள் தனிப்பயனாக்கக்கூடிய நீளம் மற்றும் எழுத்து தொகுப்புகளுடன் நானோ ஐடிகளை உருவாக்க அனுமதிக்கிறது.
நானோ ஐடிகள் எப்படி வேலை செய்கின்றன
நானோ ஐடிகள் ஒரு கிரிப்டோகிராஃபிகலாக வலுவான ரேண்டம் நம்பர் ஜெனரேட்டரை மற்றும் தனிப்பயனாக்கக்கூடிய அகராதியைப் பயன்படுத்தி உருவாக்கப்படுகின்றன. இயல்பான செயல்பாடு:
- 64-எழுத்து அகராதி (A-Za-z0-9_-) இது URL-இற்கு நட்பு
- 21 எழுத்துகள் நீளத்தில்
இந்த கூட்டமைப்பு ஐடி நீளமும் மோதல் சாத்தியத்திற்கும் நல்ல சமநிலையை வழங்குகிறது.
நானோ ஐடியை உருவாக்குவதற்கான சூத்திரம்:
1id = random(alphabet, size)
2
எங்கு random
என்பது alphabet
இல் இருந்து size
எண்ணிக்கையிலான எழுத்துகளை தேர்ந்தெடுக்கும் செயல்பாடு ஆகும்.
நானோ ஐடியின் கட்டமைப்பு
தனிப்பயனாக்கும் விருப்பங்கள்
-
நீளம்: உருவாக்கப்படும் நானோ ஐடியின் நீளத்தை நீங்கள் மாற்றலாம். இயல்பானது 21 எழுத்துகள், ஆனால் அதிக தனித்துவத்திற்காக அதிகரிக்கலாம் அல்லது குறுகிய ஐடிகளுக்காக குறைக்கலாம்.
-
அகராதி: ஐடியை உருவாக்க பயன்படுத்தப்படும் எழுத்து தொகுப்பை தனிப்பயனாக்கலாம். விருப்பங்கள் உள்ளன:
- எழுத்தெண் (இயல்பானது): A-Za-z0-9_-
- எண்கள்: 0-9
- எழுத்துகள்: A-Za-z
- தனிப்பயன்: நீங்கள் வரையறுக்கும் எழுத்துகளின் எந்த தொகுப்பும்
பாதுகாப்பு மற்றும் தனித்துவம்
நானோ ஐடிகள் உருவாக்கப்படுவதற்கான வடிவமைப்பு:
- கணிக்கையில்லாத: அவை கிரிப்டோகிராஃபிகலாக வலுவான ஜெனரேட்டரைப் பயன்படுத்துகின்றன.
- தனித்துவமான: சரியான நீளத்துடன் மோதல்களின் சாத்தியங்கள் மிகவும் குறைவாக உள்ளன.
மோதல் சாத்தியங்கள் ஐடி நீளம் மற்றும் உருவாக்கப்படும் ஐடிகளின் எண்ணிக்கையைப் பொறுத்தது. மோதலின் சாத்தியத்தை கணக்கிடுவதற்கான சூத்திரம்:
1P(collision) = 1 - e^(-k^2 / (2n))
2
எங்கு:
- k என்பது உருவாக்கப்படும் ஐடிகளின் எண்ணிக்கையாகும்
- n என்பது சாத்தியமான ஐடிகளின் எண்ணிக்கையாகும் (அகராதி நீளம் ^ நானோ ஐடி நீளம்)
உதாரணமாக, இயல்பான அமைப்புகளுடன் (64 எழுத்து அகராதி, 21 எழுத்து நீளம்), 1% மோதலுக்கு குறைந்தபட்சம் ஒரு மோதல் ஏற்பட ~1.36e36 ஐடிகளை உருவாக்க வேண்டும். இதை கருத்தில் கொண்டு:
- 1 மில்லியன் ஐடிகளை ஒரு விநாடிக்கு உருவாக்குவது, ~433 ஆண்டுகள் ஆகும் 1% மோதலுக்கு வாய்ப்பு.
- நீங்கள் பெரும்பாலும் லாட்டரியில் பல முறை வெல்லுவதற்கேற்ப நானோ ஐடி மோதலை சந்திக்க வாய்ப்பு அதிகமாக உள்ளது.
பயன்பாட்டு சந்தர்ப்பங்கள்
நானோ ஐடிகள் பல்வேறு பயன்பாடுகளுக்கு ஏற்றதாக உள்ளன, அவற்றில்:
- தரவுத்தொகுப்பின் பதிவுகள் ஐடிகள்
- URL குறுக்கீடுகள்
- இணைய பயன்பாடுகளில் அமர்வு ஐடிகள்
- தற்காலிக கோப்பு பெயர்கள்
- ஒருங்கிணைப்பை கடினமாக்கும் விநியோகிக்கப்பட்ட முறைமைகள்
பிற ஐடி முறைகளுடன் ஒப்பீடு
முறை | நன்மைகள் | தீமைகள் |
---|---|---|
நானோ ஐடி | குறுகிய, URL-இற்கு நட்பு, தனிப்பயனாக்கக்கூடிய | வரிசைமுறை இல்லாத |
UUID | தரவுத்தொகுப்பாக, மோதல் சாத்தியங்கள் மிகவும் குறைவானது | நீளமானது (36 எழுத்துகள்), URL-இற்கு நட்பு அல்ல |
ஆட்டோ-இன்கிரிமெண்ட் | எளிதானது, வரிசைமுறை | விநியோகிக்கப்பட்ட முறைமைகளுக்கு ஏற்றதல்ல, கணிக்கக்கூடிய |
ULID | நேரத்தில் வரிசைப்படுத்தக்கூடிய, URL-இற்கு நட்பு | நானோ ஐடியின் நீளத்திற்கும் (26 எழுத்துகள்) அதிகமாக |
KSUID | நேரத்தில் வரிசைப்படுத்தக்கூடிய, URL-இற்கு நட்பு | நானோ ஐடியின் நீளத்திற்கும் (27 எழுத்துகள்) அதிகமாக |
ObjectID | நேரம் மற்றும் இயந்திர அடையாளத்தை உள்ளடக்கியது | மிகவும் சீரானது, 12 பைட்டுகள் நீளமானது |
வரலாறு மற்றும் வளர்ச்சி
நானோ ஐடி 2017 ஆம் ஆண்டில் ஆண்ட்ரேய் சிட்னிக் மூலம் UUIDக்கு ஒரு சுருக்கமான மாற்றமாக உருவாக்கப்பட்டது. இது பல்வேறு நிரலாக்க மொழிகள் மற்றும் சூழ்நிலைகளில் பயன்படுத்த எளிதாக இருக்க வடிவமைக்கப்பட்டது, இணைய பயன்பாடுகளுக்கு கவனம் செலுத்தப்பட்டது.
குறியீட்டு எடுத்துக்காட்டுகள்
வித்தியாசமான நிரலாக்க மொழிகளில் நானோ ஐடிகளை உருவாக்குவதற்கான எடுத்துக்காட்டுகள்:
1// ஜாவாஸ்கிரிப்ட்
2import { nanoid } from 'nanoid';
3const id = nanoid(); // => "V1StGXR8_Z5jdHi6B-myT"
4
1## பைதான்
2import nanoid
3id = nanoid.generate() # => "kqTSU2WGQPJzuWxfifTRX"
4
1## ரூபி
2require 'nanoid'
3id = Nanoid.generate # => "7nj0iuNXoE0GnQNuH3b7v"
4
1// ஜாவா
2import com.aventrix.jnanoid.jnanoid.NanoIdUtils;
3String id = NanoIdUtils.randomNanoId(); // => "ku-gFr4Zx9QpfvLtO_8LH"
4
1// C#
2using Nanoid;
3var id = Nanoid.Generate(); // => "xGx2iKPNOEpGQBgJKU-Ow"
4
1// PHP
2<?php
3use Hidehalo\Nanoid\Client;
4$client = new Client();
5$id = $client->generateId(); // => "V1StGXR8_Z5jdHi6B-myT"
6?>
7
1// ரஸ்ட்
2use nanoid::nanoid;
3let id = nanoid!(); // => "V1StGXR8_Z5jdHi6B-myT"
4
1// கோ
2import "github.com/matoous/go-nanoid/v2"
3id, err := gonanoid.New() // => "V1StGXR8_Z5jdHi6B-myT"
4
1// ஸ்விஃப்ட்
2import NanoID
3let id = NanoID.new() // => "V1StGXR8_Z5jdHi6B-myT"
4
சிறந்த நடைமுறைகள்
- உங்கள் தனித்துவ தேவைகளுக்கு ஏற்ப சரியான நீளத்தை தேர்ந்தெடுக்கவும்.
- கிரிப்டோகிராஃபிகலாக வலுவான ரேண்டம் நம்பர் ஜெனரேட்டரைப் பயன்படுத்தவும்.
- தனிப்பயன் அகராதிகளைப் பயன்படுத்தும் போது, அவற்றில் போதுமான எண்ட்ரோபி உள்ளதா என உறுதி செய்யவும்.
- தரவுத்தொகுப்புகளில் நானோ ஐடிகளை சரம் ஆகவே சேமிக்கவும், எண்களாக அல்ல.
- திறமையான தேடலுக்கு நானோ ஐடி நெட்வொர்க் நெட்வொர்க் களத்தில் குறியீடுகளைப் பயன்படுத்தவும்.
வரம்புகள் மற்றும் கருத்துக்கள்
- நானோ ஐடிகள் வரிசைமுறை இல்லாதவை, இது சில சந்தர்ப்பங்களில் தரவுத்தொகுப்பின் செயல்திறனை பாதிக்கலாம்.
- அவை மனிதரால் வாசிக்கக்கூடியவையல்ல அல்லது உருவாக்கும் நேரத்தின் அடிப்படையில் வரிசைப்படுத்தப்பட முடியாது.
- தனிப்பயன் அகராதிகள் மோதலின் சாத்தியத்தை பாதிக்கலாம் மற்றும் கவனமாக தேர்ந்தெடுக்கப்பட வேண்டும்.
இணைய பயன்பாடுகளில் நானோ ஐடி ஜெனரேட்டரை செயல்படுத்துதல்
நானோ ஐடி ஜெனரேட்டரை இணைய பயன்பாட்டில் செயல்படுத்த:
- உங்கள் பின்னணி மொழிக்கான நானோ ஐடி நூலகத்தை நிறுவவும்.
- ஒரு நானோ ஐடியை உருவாக்கி திருப்பி அளிக்கும் API முடிவுகளை உருவாக்கவும்.
- தேவையான போது API ஐ அழைக்க கிளையண்ட் பக்கம் ஜாவாஸ்கிரிப்ட் பயன்படுத்தவும்.
எடுத்துக்காட்டாக Express.js செயல்பாடு:
1const express = require('express');
2const { nanoid } = require('nanoid');
3
4const app = express();
5
6app.get('/generate-id', (req, res) => {
7 const id = nanoid();
8 res.json({ id });
9});
10
11app.listen(3000, () => console.log('Server running on port 3000'));
12
செயல்திறன் விளைவுகள்
நானோ ஐடி உருவாக்குதல் பொதுவாக மிகவும் வேகமாக இருக்கும். ஒரு சாதாரண கணினியில், இது ஒரு விநாடிக்கு மில்லியனுக்கு மேற்பட்ட ஐடிகளை உருவாக்கலாம். எனினும், கவனிக்கவும்:
- உருவாக்கும் வேகம் பயன்படுத்தப்படும் ரேண்டம் நம்பர் ஜெனரேட்டரால் மாறுபடும்.
- தனிப்பயன் அகராதிகள் அல்லது நீளமானவை செயல்திறனை சிறிது பாதிக்கலாம்.
- அதிக சுமை முறைமைகளில், ஐடிகளை தொகுப்புகளில் உருவாக்குவதைக் கருத்தில் கொள்ளவும்.
மோதல் சாத்தியத்தையும் குறைப்பதையும்
மோதல் ஆபத்திகளை குறைக்க:
- அதிக தனித்துவ தேவைகளுக்காக நானோ ஐடியின் நீளத்தை அதிகரிக்கவும்.
- உங்கள் பயன்பாட்டு உள்துறையில் மோதல் சோதனையை செயல்படுத்தவும்.
- சாத்தியமானதாக இருந்தால் பெரிய அகராதியைப் பயன்படுத்தவும்.
தரவுத்தொகுப்புகளில் நானோ ஐடிகளை சேமிக்கவும் குறியீடு செய்யவும்
நானோ ஐடிகளுடன் தரவுத்தொகுப்புகளில் வேலை செய்யும்போது:
- அவற்றை
VARCHAR
அல்லது சமமான சரம் வகையாக சேமிக்கவும். - தனித்துவத்தை உறுதி செய்ய நானோ ஐடியின் முழு நீளத்தைப் பயன்படுத்தவும்.
- வேகமான தேடலுக்கு நானோ ஐடி நெட்வொர்க் களத்தில் குறியீடுகளை உருவாக்கவும்.
- தரவுத்தொகுப்பின் மட்டத்தில் நகல்களைத் தடுக்கும் தனித்துவமான கட்டுப்பாட்டைப் பயன்படுத்தவும்.
நானோ ஐடியுடன் ஒரு அட்டவணையை உருவாக்குவதற்கான எடுத்துக்காட்டு SQL:
1CREATE TABLE users (
2 id VARCHAR(21) PRIMARY KEY,
3 name VARCHAR(100),
4 email VARCHAR(100)
5);
6
7CREATE INDEX idx_users_id ON users (id);
8
இந்த வழிமுறைகளை பின்பற்றுவதன் மூலம் மற்றும் நானோ ஐடியின் பண்புகளைப் புரிந்துகொள்வதன் மூலம், நீங்கள் உங்கள் பயன்பாடுகளில் சுருக்கமான, தனித்துவமான அடையாளங்களை உருவாக்குவதற்கான நானோ ஐடியைப் பயனுள்ள முறையில் செயல்படுத்த மற்றும் பயன்படுத்த முடியும்.
குறிப்பு
- "நானோ ஐடி." GitHub, https://github.com/ai/nanoid. அணுகப்பட்டது 2 ஆக. 2024.
- "UUID." விக்கிப்பீடியா, விக்கிமீடியா அடிப்படையில், https://en.wikipedia.org/wiki/Universally_unique_identifier. அணுகப்பட்டது 2 ஆக. 2024.
- "மோதல் சாத்தியக்கூறி கணக்கீட்டாளர்." நானோ ஐடி மோதல் கணக்கீட்டாளர், https://zelark.github.io/nano-id-cc/. அணுகப்பட்டது 2 ஆக. 2024.
- "ULID Spec." GitHub, https://github.com/ulid/spec. அணுகப்பட்டது 2 ஆக. 2024.
- "KSUID: K-Sortable Globally Unique IDs." GitHub, https://github.com/segmentio/ksuid. அணுகப்பட்டது 2 ஆக. 2024.
- "ObjectID." மொங்கோடி மானுவல், https://docs.mongodb.com/manual/reference/method/ObjectId/. அணுகப்பட்டது 2 ஆக. 2024.
பின்னூட்டம்
இந்த கருவி பற்றி பின்னூட்டம் அளிக்க தொடங்க பின்னூட்டத்தை கிளிக் செய்யவும்
சம்பந்தப்பட்ட கருவிகள்
உங்கள் வேலைப்பாட்டுக்கு பயனுள்ளதாக இருக்கக்கூடிய மேலும் கருவிகளை கண்டறியவும்