เครื่องมือสร้าง NanoID

สร้างค่า NanoID ออนไลน์: ค่าเริ่มต้นมีความยาว 21 ตัวอักษรที่ปลอดภัยสำหรับ URL มีความสุ่มประมาณ 126 บิต สามารถกำหนดความยาวและชุดตัวอักษรเองได้ครับ

รูปแบบ
ID ที่สร้างขึ้น
พร้อมใช้งานแล้วครับ สร้างค่า NanoID ในเบราว์เซอร์ของคุณได้เลย

โครงสร้างของ ID นี้

รูปแบบการจัดวาง (Layout)
เริ่มต้นที่ 21 ตัวอักษรที่ปลอดภัยสำหรับ URL ประกอบด้วย A-Z, a-z, 0-9, เครื่องหมายขีดล่าง (_) และเครื่องหมายยัติภังค์ (-) ครับ
เอนโทรปี (Entropy)
ประมาณ 126 บิต เมื่อใช้ชุดตัวอักษรเริ่มต้น 64 ตัวและความยาว 21 ตัวอักษรครับ
เวลา
ไม่มีการประทับเวลา ค่า NanoID จะไม่มีความหมายในตัวเอง เว้นแต่คุณจะกำหนดความหมายลงในชุดตัวอักษรที่กำหนดเองครับ
ความเสี่ยงในการซ้ำกัน (Collision)
ความเสี่ยงในการซ้ำกันจะเปลี่ยนไปตามความยาวและชุดตัวอักษรที่ใช้ โดยค่าเริ่มต้นจะมีความปลอดภัยในระดับเดียวกับ UUID v4 ครับ
ตัวอย่าง
pO-SkSOmbAOTiBnceTgME

ID ของคุณจะถูกสร้างขึ้นภายในเครื่องด้วยระบบสุ่มของเบราว์เซอร์ที่ปลอดภัย ไม่มีการส่งข้อมูลใดๆ ไปยัง BroBroGo

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

ทำไมต้องเลือกใช้ NanoID?

NanoID มีความยาวสั้นกว่า UUID ปลอดภัยสำหรับ URL โดยค่าเริ่มต้น และยังคงมีความสุ่มในระดับสูงเมื่อคุณใช้ความยาวและชุดตัวอักษรเริ่มต้นครับ

ฉันสามารถเปลี่ยนชุดตัวอักษรได้หรือไม่?

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

Nano ID Generator: สร้างรหัสเฉพาะที่สั้น ปลอดภัย และปรับแต่งได้

หน้า nanoid-generator สร้างรหัสระบุเฉพาะในรูปแบบ Nano ID โดยให้ผู้ใช้กำหนดความยาวและชุดตัวอักษรที่อนุญาตได้อย่างอิสระ แตกต่างจาก UUID ซึ่งมีขนาดคงที่ 36 ตัวอักษร หรือ ULID ที่ 26 ตัวอักษร Nano ID เริ่มต้นที่ 21 ตัวอักษร ซึ่งสั้นกว่า UUID มาก แต่ยังคงความต้านทานการชนกันของรหัสได้ดีในระดับที่ยอมรับได้ ทั้งความยาวและชุดตัวอักษรสามารถปรับเปลี่ยนได้ทันที โดยการเปลี่ยนค่าใดค่าหนึ่งจะทำให้เครื่องมือสร้างรหัสใหม่โดยอัตโนมัติ


ความแตกต่างที่สำคัญ: ปรับความยาวและชุดตัวอักษรได้ตามต้องการ

เครื่องมือนี้แตกต่างจากตัวสร้างรหัสแบบอื่นตรงที่:

  • ความยาว ปรับได้ตั้งแต่ 2 ถึง 36 ตัวอักษร (ค่าเริ่มต้น 21)
  • ชุดตัวอักษร เป็นช่องข้อความที่แก้ไขได้ โดยต้องมี อย่างน้อย 2 ตัวอักษรที่แตกต่างกัน (ค่าเริ่มต้นเป็นอักขระที่ปลอดภัยสำหรับ URL เช่น ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_-)
  • เมื่อเปลี่ยนความยาวหรือชุดตัวอักษร ระบบจะสร้างรหัสใหม่ทันทีโดยไม่ต้องกดปุ่มใดๆ
  • หากชุดตัวอักษรเหลือเพียงตัวเดียว (เช่น ลบออกจนเหลือแค่ a) ระบบจะล้างผลลัพธ์ ตัวนับรหัสเป็น 0 และปุ่ม "Copy all" จะถูกปิดใช้งาน

ซึ่งแตกต่างจาก UUID ที่มีโครงสร้างตายตัว (เช่น xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx) และไม่สามารถย่อให้สั้นลงหรือเปลี่ยนชุดตัวอักษรได้ การปรับแต่งนี้เหมาะสำหรับสถานการณ์ที่ต้องใช้รหัสสั้นมาก เช่น รหัสสำหรับลิงก์ย่อ หรือรหัสที่ต้องใช้เฉพาะตัวเลขหรือเฉพาะตัวพิมพ์ใหญ่เท่านั้น


อินพุตและเอาต์พุตของเครื่องมือ

อินพุตที่ผู้ใช้กำหนด:

  • รูปแบบ: เลือกเป็น Nano ID จากเมนู dropdown (รูปแบบอื่นที่มีในเว็บไซต์อาจรวมถึง UUID หรือ ULID)
  • จำนวน: ตัวเลขระหว่าง 1 ถึง 100 รหัสต่อครั้ง
  • ความยาว: แถบเลื่อน ค่าเริ่มต้น 21 ช่วง 2–36
  • ชุดตัวอักษร: ช่องข้อความที่แก้ไขได้ แสดงอักขระ URL-safe เป็นค่าเริ่มต้น

เอาต์พุตที่แสดง:

  • รายการรหัส Nano ID ที่ไม่ซ้ำกัน
  • ตัวนับจำนวนรหัสที่สร้าง
  • สถานะ: "Ready." (ขณะว่าง), "Generated." (หลังจากสร้าง), "Copied all!" (หลังจากคัดลอกทั้งหมด)
  • ข้อความข้อผิดพลาด: "Alphabet needs at least 2 different characters." เมื่อชุดตัวอักษรไม่ถูกต้อง

หลักการทำงาน: ความยาว ชุดตัวอักษร และความต้านทานการชน

Nano ID ใช้การสุ่มแบบเข้มข้นจากเบราว์เซอร์ (crypto.getRandomValues) ซึ่งให้ความไม่แน่นอนสูง ไม่สามารถคาดเดาได้ และไม่ต้องพึ่งพาเซิร์ฟเวอร์ กระบวนการทั้งหมดเกิดขึ้นในเบราว์เซอร์ของผู้ใช้เท่านั้น

ความต้านทานการชนกันของรหัสขึ้นอยู่กับสองปัจจัย:

  1. ความยาวของรหัส (L) – ยิ่งยาวยิ่งมีชุดค่าผสมมาก
  2. ขนาดของชุดตัวอักษร (A) – จำนวนอักขระที่แตกต่างกันที่ใช้

จำนวนรหัสที่เป็นไปได้ทั้งหมดคำนวณจาก A^L ตัวอย่างเช่น:

  • ค่าเริ่มต้น: 64 อักขระ (URL-safe) ยาว 21 ตัว → 64^21 ≈ 1.3 × 10^38 รหัส
  • ถ้าใช้เฉพาะตัวเลข (10 อักขระ) ยาว 8 ตัว → 10^8 = 100,000,000 รหัส (เหมาะสำหรับรหัส OTP ที่ใช้ครั้งเดียว)
  • ถ้าใช้เฉพาะตัวพิมพ์ใหญ่ (26 อักขระ) ยาว 6 ตัว → 26^6 ≈ 308 ล้านรหัส

ความยาว 21 ตัวของ Nano ID ให้จำนวนรหัสที่มากกว่า UUID (128 บิต = 2^128 ≈ 3.4 × 10^38) เล็กน้อย แต่ใช้ตัวอักษรน้อยกว่า 15 ตัว (UUID ยาว 36 ตัวอักษรรวมเครื่องหมายขีด) ซึ่งช่วยประหยัดพื้นที่จัดเก็บและแบนด์วิดท์ในการส่งผ่านเครือข่าย โดยเฉพาะในระบบที่มีปริมาณข้อมูลสูง เช่น API ที่ส่งรหัสในทุกคำขอ หรือฐานข้อมูลที่ใช้รหัสเป็นคีย์หลัก


กรณีขอบและข้อผิดพลาดที่พบบ่อย

1. ชุดตัวอักษรที่มีตัวอักษรซ้ำกัน หากผู้ใช้ป้อน aabbcc จริงๆ แล้วมีเพียง 3 ตัวอักษรที่แตกต่างกัน (a, b, c) เครื่องมือจะนับว่าเป็น 3 ตัว และทำงานได้ตามปกติ แต่ถ้าเหลือเพียง 1 ตัวอักษรที่แตกต่างกัน (เช่น aaaa) ระบบจะถือว่าไม่ถูกต้อง เนื่องจากไม่สามารถสร้างรหัสที่มีความหลากหลายได้

2. ความยาวต่ำเกินไป เมื่อความยาวลดลงเหลือ 2 ตัวอักษร จำนวนรหัสที่เป็นไปได้จะน้อยมาก เช่น 64^2 = 4,096 รหัส ซึ่งอาจเกิดการซ้ำได้ง่ายหากสร้างหลายรหัส อย่างไรก็ตาม เครื่องมืออนุญาตให้ปรับแถบเลื่อนลงไปถึง 2 ตามข้อกำหนด

3. การคัดลอกรหัสทีละรหัส ผู้ใช้สามารถคลิกที่รหัสแต่ละรหัสเพื่อคัดลอกไปยังคลิปบอร์ดได้ทันที โดยไม่ต้องเลือกข้อความด้วยตนเอง

4. การสร้างหลายรหัสพร้อมกัน จำนวนสูงสุดที่สร้างได้คือ 100 รหัสต่อครั้ง หากต้องการมากกว่านั้น ต้องกดสร้างซ้ำอีกครั้ง


ใครควรใช้เครื่องมือนี้

  • นักพัฒนาที่ต้องการรหัสสั้น ปลอดภัยสำหรับ URL สำหรับใช้ใน REST API, QR code, หรือลิงก์ย่อ
  • สถาปนิกระบบที่ต้องการกำหนดความยาวและชุดตัวอักษรให้ตรงตามข้อจำกัดของรูปแบบ เช่น ระบบที่รับเฉพาะตัวเลข หรือต้องการหลีกเลี่ยงอักขระที่สับสน (เช่น 0 กับ O, 1 กับ l)
  • ผู้ใช้ที่ใส่ใจความเป็นส่วนตัว ที่ต้องการการสร้างรหัสฝั่งไคลเอ็นต์ โดยไม่ส่งข้อมูลใดไปยังเซิร์ฟเวอร์
  • ผู้ที่ทำงานกับระบบที่มีปริมาณธุรกรรมสูง ซึ่งรหัสสั้นช่วยลดพื้นที่จัดเก็บและค่าใช้จ่ายในการส่งข้อมูล

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

Nano ID ต่างจาก UUID อย่างไร? Nano ID มีความยาวเริ่มต้น 21 ตัวอักษร (สั้นกว่า UUID ที่ 36 ตัว) ปรับความยาวและชุดตัวอักษรได้ ในขณะที่ UUID มีโครงสร้างตายตัวตามมาตรฐาน RFC 4122 Nano ID ใช้การสุ่มจาก crypto.getRandomValues ส่วน UUID มีหลายเวอร์ชัน (บางเวอร์ชันใช้เวลาและที่อยู่ MAC)

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

สามารถสร้างได้สูงสุดกี่รหัสต่อครั้ง? สูงสุด 100 รหัสต่อการกดสร้างหนึ่งครั้ง โดยสามารถกดสร้างซ้ำได้เรื่อยๆ

ข้อมูลถูกส่งไปยังเซิร์ฟเวอร์ BroBroGo หรือไม่? ไม่ การสร้างรหัสทั้งหมดเกิดขึ้นในเบราว์เซอร์ของคุณโดยใช้ฟังก์ชันสุ่มในตัวของ JavaScript (crypto.getRandomValues) ไม่มีการส่งข้อมูลใดไปยังเซิร์ฟเวอร์

ความยาวที่แนะนำคือเท่าใด? ค่าเริ่มต้น 21 ตัวอักษรจากชุด URL-safe (64 อักขระ) เพียงพอสำหรับการใช้งานทั่วไป หากคุณต้องการรหัสสั้นมาก (เช่น 6-8 ตัว) ควรพิจารณาความเสี่ยงในการชนกัน และอาจต้องใช้ร่วมกับกลไกตรวจสอบความซ้ำซ้อนในฝั่งฐานข้อมูล

ทำไมต้องปรับเปลี่ยนชุดตัวอักษร? เพื่อให้รหัสที่ได้ตรงกับข้อจำกัดของระบบปลายทาง เช่น ระบบที่รับเฉพาะตัวพิมพ์ใหญ่ (เช่น รหัสคูปอง) หรือระบบที่ไม่อนุญาตให้ใช้อักขระพิเศษบางตัว การปรับเปลี่ยนยังช่วยหลีกเลี่ยงอักขระที่อ่านยากหรือสับสน เช่น I, l, 1 หรือ 0, O