ข้ามไปยังเนื้อหา

เครื่องมือสร้าง Nano ID ฟรี - รหัสเฉพาะปลอดภัยสำหรับ URL ออนไลน์

สร้าง Nano IDs ที่ปลอดภัยได้ทันที! เครื่องมือออนไลน์ฟรีสร้างตัวระบุเฉพาะที่กระชับ ปลอดภัยสำหรับ URL สั้นกว่า UUID 42% เหมาะสำหรับฐานข้อมูล API โทเค็น และระบบต่างๆ

ความยาวของ Nano ID ที่สร้างขึ้น (1-100 ตัวอักษร)

เลือกชุดอักขระสำหรับ Nano ID ของคุณ

Nano ID ที่สร้างขึ้น

กรอกค่าเพื่อดูผลลัพธ์

การแสดงภาพ

เครื่องคำนวณโหลด...
📚

เอกสารประกอบการใช้งาน

เครื่องมือสร้าง Nano ID สร้างสตริงอักขระสุ่มสั้น ๆ ที่เรียกว่า Nano ID โดย Nano ID ใช้เป็นตัวระบุเฉพาะสำหรับสิ่งต่าง ๆ เช่น ระเบียนฐานข้อมูล URL และโทเค็น API และโอกาสที่ ID สองรายการซึ่งสร้างขึ้นจะตรงกันนั้นน้อยมาก

Nano ID คืออะไร?

Nano ID คือสตริงที่สร้างแบบสุ่มและใช้ติดป้ายกำกับสิ่งใดสิ่งหนึ่ง เพื่อให้แยกออกจากสิ่งอื่นทั้งหมดได้ Andrey Sitnik นักพัฒนาซอฟต์แวร์สร้างรูปแบบนี้ในปี 2017 เพื่อเป็นทางเลือกที่มีขนาดเล็กกว่า UUID (Universally Unique Identifier) ซึ่งเป็นตัวระบุความยาว 36 อักขระที่ใช้กันอย่างแพร่หลายในการประมวลผลคอมพิวเตอร์ Nano ID ค่าเริ่มต้นมีความยาว 21 อักขระ เทียบกับ UUID ที่มี 36 อักขระ จึงลดลงประมาณ 42%

วิธีสร้าง Nano ID ด้วยเครื่องมือนี้

เครื่องมือสร้างในหน้านี้สร้าง Nano ID จากการตั้งค่าสองรายการ

  1. ความยาว: จำนวนเต็มตั้งแต่ 1 ถึง 100 ค่าเริ่มต้นคือ 21
  2. ชุดอักขระ: กลุ่มอักขระที่ใช้สร้าง ID ค่าเริ่มต้นคือชุดอักขระตัวอักษรและตัวเลข

ป้อนความยาว เลือกชุดอักขระ แล้วกด "Generate" เพื่อสร้าง ID กด "Copy" เพื่อคัดลอก หรือกด "Reset" เพื่อกลับไปใช้ความยาว 21 และชุดอักขระตัวอักษรและตัวเลข เมื่อความยาวหรือชุดอักขระเปลี่ยน ระบบจะสร้าง ID ใหม่โดยอัตโนมัติ ใต้ปุ่ม เครื่องมือจะแสดงอักขระแต่ละตัวของ ID เป็นบล็อกสี ได้แก่ สีน้ำเงินสำหรับตัวพิมพ์ใหญ่ สีเขียวสำหรับตัวพิมพ์เล็ก สีส้มสำหรับตัวเลข และสีเทาสำหรับเครื่องหมายวรรคตอน

หากความยาวไม่ใช่จำนวนเต็มระหว่าง 1 ถึง 100 เครื่องมือจะแสดงข้อความว่า "ความยาวต้องเป็นจำนวนเต็มระหว่าง 1 ถึง 100" และจะไม่สร้าง ID

ชุดอักขระที่มีให้ใช้

เครื่องมือนี้มีชุดอักขระตายตัวเจ็ดชุด และไม่รองรับชุดอักขระที่ผู้ใช้พิมพ์กำหนดเอง ชุด "With Symbols" จะเพิ่มเครื่องหมายวรรคตอน 26 รายการต่อไปนี้ให้กับชุดอักขระตัวอักษรและตัวเลข: ! @ # $ % ^ & * ( ) _ + - = [ ] { } | ; : , . < > ?

ชุดอักขระอักขระที่ใช้ขนาดชุดอักขระ
ตัวอักษรและตัวเลข (ค่าเริ่มต้น)A-Z, a-z, 0–962
ปลอดภัยสำหรับ URLA-Z, a-z, 0-9, -, _64
ตัวเลข0–910
ตัวอักษรA-Z, a-z52
ตัวพิมพ์เล็กa-z26
ตัวพิมพ์ใหญ่A-Z26
พร้อมสัญลักษณ์A-Z, a-z, 0–9 และเครื่องหมายวรรคตอน 26 รายการ88

ชุดอักขระตัวอักษรและตัวเลขถูกเลือกไว้เป็นค่าเริ่มต้น โดยตัดยัติภังค์และขีดล่างที่ใช้ในชุดอักขระปลอดภัยสำหรับ URL ออก แต่การใช้เฉพาะตัวอักษรและตัวเลขก็ปลอดภัยสำหรับการวางลงใน URL โดยตรงอยู่แล้ว

สูตรของ Nano ID

Nano ID สร้างขึ้นโดยสุ่มเลือกอักขระตามจำนวนที่กำหนดจากชุดอักขระทีละตัว โดยใช้ตัวสร้างตัวเลขสุ่มที่ปลอดภัยทางการเข้ารหัส ซึ่งเป็นตัวสร้างที่ออกแบบมาให้ไม่สามารถคาดเดาผลลัพธ์ล่วงหน้าได้

1id = random(alphabet, size)
2

ด้วยการตั้งค่าเริ่มต้น alphabet มีอักขระ 62 ตัว และ size เท่ากับ 21

ตัวอย่างพร้อมวิธีทำ

เมื่อใช้ชุดอักขระตัวอักษรและตัวเลขค่าเริ่มต้น และความยาว 21 ID ที่สร้างขึ้นได้หนึ่งรายการคือ:

1K7pQ2mZxT9vY4nR8jH3wL
2

อักขระแต่ละตัวสุ่มอย่างเป็นอิสระจากตัวอักษรและตัวเลข 62 ตัว ดังนั้นการเรียกใช้เครื่องมือสร้างสองครั้งแทบจะไม่ให้สตริงเดียวกัน

วิธีคำนวณความน่าจะเป็นของการชนกัน

เนื่องจาก Nano ID ถูกเลือกแบบสุ่ม จึงเป็นไปได้ แม้จะมีโอกาสน้อยมากที่ ID สองรายการซึ่งสร้างขึ้นจะตรงกัน เหตุการณ์นี้เรียกว่าการชนกัน โอกาสที่จะเกิดการชนกันอย่างน้อยหนึ่งครั้งหลังจากสร้าง ID k รายการ ใช้คณิตศาสตร์เดียวกับ "ปัญหาวันเกิด":

1P(collision) ≈ 1 - e^(-k² / (2n))
2

ในที่นี้ n คือจำนวน ID ที่เป็นไปได้ ซึ่งเท่ากับขนาดชุดอักขระยกกำลังความยาวของ ID หรือ n = alphabet_size^length

ตัวอย่างพร้อมวิธีทำ

สำหรับการตั้งค่าเริ่มต้น ชุดอักขระความยาว 62 ตัว และความยาว ID 21 อักขระ:

1n = 62^21 ≈ 4.4 × 10^37 possible IDs
2

เมื่อแก้สมการเพื่อหาความน่าจะเป็นของการชนกัน 1% จะได้ว่า:

1k ≈ 9.4 × 10^17 IDs
2

กล่าวคือ ต้องสร้าง ID ประมาณ 940 ล้านล้านล้านรายการ จึงจะมีโอกาสเพียง 1% ที่ ID สองรายการจะตรงกัน หากสร้าง ID ได้หนึ่งล้านรายการต่อวินาที จะใช้เวลาประมาณ 29,700 ปีจึงจะถึงจำนวนนั้น

การเปลี่ยนไปใช้ชุดอักขระปลอดภัยสำหรับ URL ที่มีอักขระ 64 ตัว จะเพิ่มจำนวนดังกล่าวเล็กน้อยเป็นประมาณ 1.3 × 10^18 ID สำหรับความเสี่ยง 1% เท่าเดิม เนื่องจากชุดอักขระที่ใหญ่กว่าทำให้มี ID ที่เป็นไปได้ให้เลือกมากขึ้น

Nano ID เปรียบเทียบกับตัวระบุชนิดอื่น

ประเภทความยาวหมายเหตุ
Nano ID21 อักขระ ปรับได้สุ่ม กะทัดรัด และไม่สามารถเรียงตามเวลาได้
UUID36 อักขระรูปแบบมาตรฐาน รองรับอย่างแพร่หลาย และมียัติภังค์
ULID26 อักขระเรียงตามเวลาที่สร้างได้
KSUID27 อักขระเรียงตามเวลาที่สร้างได้ และมีการประทับเวลา
จำนวนเต็มเพิ่มอัตโนมัติแตกต่างกันไปเรียบง่ายและเรียงต่อเนื่อง แต่คาดเดาได้และประสานงานระหว่างฐานข้อมูลแยกกันได้ยาก

คำถามที่พบบ่อย

ความยาวและชุดอักขระเริ่มต้นของ Nano ID คือเท่าใด?

ค่าเริ่มต้นคือ 21 อักขระจากชุดอักขระตัวอักษรและตัวเลข ได้แก่ A-Z, a-z, 0-9 รวมทั้งหมด 62 อักขระ

เครื่องมือนี้รองรับชุดอักขระแบบกำหนดเองหรือไม่?

ไม่รองรับ เครื่องมือนี้มีชุดอักขระตายตัวเจ็ดชุด ได้แก่ ตัวอักษรและตัวเลข ปลอดภัยสำหรับ URL ตัวเลข ตัวอักษร ตัวพิมพ์เล็ก ตัวพิมพ์ใหญ่ และ "With Symbols"

Nano ID แตกต่างจาก UUID อย่างไร?

Nano ID สั้นกว่า ค่าเริ่มต้นมี 21 อักขระ เทียบกับ UUID ที่มี 36 อักขระ หรือสั้นกว่าประมาณ 42% ทั้งสองชนิดสร้างแบบสุ่มและไม่เรียงต่อเนื่อง

Nano ID สามารถเรียงตามเวลาที่สร้างได้หรือไม่?

ไม่ได้ Nano ID เป็นการสุ่มทั้งหมด จึงไม่มีข้อมูลว่า ID ถูกสร้างขึ้นเมื่อใด รูปแบบอย่าง ULID หรือ KSUID ออกแบบมาให้เรียงตามเวลาได้แทน

Nano ID ปลอดภัยสำหรับใช้เป็นคีย์หลักของฐานข้อมูลหรือไม่?

ปลอดภัย ควรจัดเก็บเป็นคอลัมน์ข้อความหรือสตริงแทนที่จะเป็นตัวเลข และสร้างดัชนีไม่ซ้ำเพื่อให้ค้นหาได้รวดเร็ว

Nano ID ที่เป็นไปได้มีจำนวนเท่าใด?

ขึ้นอยู่กับความยาวและชุดอักขระที่เลือก สำหรับชุดอักขระความยาว 62 ตัวและความยาว 21 อักขระ จะมี ID ที่เป็นไปได้ 62^21 รายการ หรือประมาณ 4.4 × 10^37 รายการ

เอกสารอ้างอิง

  1. Sitnik, Andrey. "Nano ID." GitHub, https://github.com/ai/nanoid.
  2. "Universally unique identifier." Wikipedia, Wikimedia Foundation, https://en.wikipedia.org/wiki/Universally_unique_identifier.
  3. "ULID Spec." GitHub, https://github.com/ulid/spec.