شناسههای Nano ID: تولید شناسههای کوتاه، امن و قابل تنظیم
این صفحه ابزاری را در اختیار شما میگذارد که با استفاده از قالب Nano ID شناسههای یکتا تولید میکند. شما طول شناسه و مجموعه کاراکترهای مجاز را تعیین میکنید و ابزار یک یا چند شناسه فشرده، امن برای نشانی وب (URL-safe) و مقاوم در برابر برخورد (collision-resistant) تولید میکند. شناسهها با استفاده از اعداد تصادفی قوی مرورگر (crypto.getRandomValues) و بهطور کاملاً محلی در سمت کاربر تولید میشوند. هیچ دادهای به سرور BroBroGo ارسال نمیشود.
چه چیزی این صفحه را از سایر ابزارهای مشابه متمایز میکند؟
برخلاف شناسههای UUID (با طول ثابت ۳۶ کاراکتر) یا ULID (۲۶ کاراکتر)، طول پیشفرض Nano ID تنها ۲۱ کاراکتر است – کوتاهتر از UUID و در عین حال مقاومت برخوردی قابل مقایسه دارد. هر دو پارامتر طول و الفبا کاملاً قابل تنظیم هستند:
- طول را میتوان بین ۲ تا ۳۶ کاراکتر تنظیم کرد.
- الفبا یک فیلد متنی قابل ویرایش است که باید حداقل ۲ کاراکتر متفاوت داشته باشد.
- تغییر هر یک از این تنظیمات بلافاصله شناسهها را دوباره تولید میکند.
- اگر الفبا به یک کاراکتر منفرد کاهش یابد، نتایج پاک میشوند، تعداد شناسهها ۰ میشود و دکمه «کپی همه» غیرفعال میگردد.
- شناسههای تولید شده بهطور پیشفرض تنها از کاراکترهای امن برای نشانی وب استفاده میکنند.
ورودیها و خروجیها
ورودیها:
- قالب (Format): Nano ID (از منوی کشویی قابل انتخاب است)
- تعداد (Count): عددی بین ۱ تا ۱۰۰
- طول (Length): یک نوار لغزنده با پیشفرض ۲۱ و محدوده ۲ تا ۳۶
- الفبا (Alphabet): یک فیلد متنی قابل ویرایش که بهطور پیشفرض شامل کاراکترهای امن برای نشانی وب است
خروجیها:
- شناسههای تولید شده: فهرستی از شناسههای یکتای Nano ID
- تعداد شناسهها: عددی که نشان میدهد چند شناسه تولید شده است
- وضعیت «آماده» (Ready) در حالت بیکار
- وضعیت «تولید شد» (Generated) پس از تولید شناسهها
- وضعیت «همه کپی شد!» (Copied all!) پس از کپی کردن همه شناسهها
- پیام خطای «الفبا حداقل به ۲ کاراکتر متفاوت نیاز دارد.» (Alphabet needs at least 2 different characters.) در صورت نامعتبر بودن الفبا
کلیک روی یک شناسه فردی آن را در کلیپبورد کپی میکند.
قوانین و موارد مرزی
- طول پیشفرض Nano ID ۲۱ کاراکتر است.
- الفبا باید حداقل ۲ کاراکتر متفاوت داشته باشد. اگر الفبا به یک کاراکتر منحصر شود، نتایج پاک شده، تعداد شناسهها ۰ میشود و دکمه «کپی همه» غیرفعال میگردد.
- تغییر هر یک از گزینهها (طول، الفبا، تعداد یا قالب) باعث تولید دوباره شناسهها میشود.
- ابزار بین ۱ تا ۱۰۰ شناسه را در هر بار تولید میکند.
تولید شناسهها بهطور کامل در مرورگر انجام میشود؛ از اعداد تصادفی امن (crypto.getRandomValues) استفاده میکند و هیچ درخواستی به هیچ سروری ارسال نمیشود. این یعنی شناسههای شما محرمانه باقی میمانند.
انتخاب طول و الفبای مناسب
طول پیشفرض ۲۱ کاراکتر با الفبای URL-safe (شامل ۶۴ کاراکتر: حروف بزرگ و کوچک انگلیسی، اعداد ۰-۹، و کاراکترهای - و _) تعادلی عالی بین کوتاهی و مقاومت برخوردی ایجاد میکند. احتمال برخورد برای ۱ میلیارد شناسه با این تنظیمات حدود ۱۰^-۱۲ است – بسیار کم.
رابطه طول و الفبا با احتمال برخورد:
- افزایش طول، امنیت برخوردی را بهطور نمایی افزایش میدهد.
- افزایش تعداد کاراکترهای الفبا نیز همین اثر را دارد.
- اگر الفبا را به اعداد (۱۰ کاراکتر) محدود کنید، برای رسیدن به همان مقاومت برخوردی باید طول را افزایش دهید. مثلاً طول ۳۶ با الفبای اعدادی معادل ۲۱ کاراکتر با الفبای کامل است.
- از الفبای حاوی کاراکترهای مبهم (مانند
0وOیا1وl) پرهیز کنید. الفبای پیشفرض این ابزار این کاراکترها را حذف کرده است.
موارد استفاده رایج:
- شناسههای کوتاه برای لینکها: طول ۸ تا ۱۲ کاراکتر با الفبای کامل کافی است.
- کلید پایگاه داده: طول ۲۱ کاراکتر پیشفرض توصیه میشود.
- توکنهای یکبار مصرف: طول ۳۶ کاراکتر با الفبای کامل برای سطوح بسیار بالای امنیت.
توجه داشته باشید که کاهش الفبا به کمتر از ۶۴ کاراکتر، فضای حالت را کاهش میدهد. مثلاً الفبای ۳۲ کاراکتری با طول ثابت ۲۱ کاراکتر، نصف فضای حالت الفبای کامل را دارد.
سؤالات متداول
۱. چرا طول پیشفرض Nano ID ۲۱ کاراکتر است؟ زیرا ۲۱ کاراکتر با الفبای ۶۴ تایی، حدود ۲^۱۲۵ فضای حالت ایجاد میکند که بسیار بیشتر از ۲^۱۲۲ فضای UUID نسخه ۴ است. این یعنی مقاومت برخوردی مشابه UUID با ۱۵ کاراکتر کمتر.
۲. آیا میتوانم فقط از اعداد استفاده کنم؟
بله، الفبا را به 0123456789 تغییر دهید. اما به یاد داشته باشید که برای حفظ مقاومت برخوردی، باید طول را افزایش دهید. مثلاً طول ۳۶ با الفبای اعدادی معادل ۲۱ کاراکتر با الفبای کامل است.
۳. اگر الفبا حاوی کاراکترهای تکراری باشد چه اتفاقی میافتد؟ ابزار کاراکترهای تکراری را حذف میکند یا آنها را بهعنوان یک مجموعه در نظر میگیرد. اما بهتر است الفبا را بدون تکرار وارد کنید تا فضای حالت محاسبه شده دقیق باشد.
۴. آیا شناسههای تولید شده امن و غیرقابل پیشبینی هستند؟
بله، از crypto.getRandomValues استفاده میشود که یک مولد اعداد تصادفی رمزنگاری شده است. این روش در مرورگرهای مدرن در دسترس است و امنیت بالایی دارد.
۵. حداکثر چند شناسه میتوانم در یک بار تولید کنم؟ حداکثر ۱۰۰ شناسه. این محدودیت برای جلوگیری از مصرف بیش از حد حافظه مرورگر و ایجاد اختلال در تجربه کاربری تعیین شده است.
۶. آیا میتوانم از حروف فارسی در الفبا استفاده کنم؟ از نظر فنی بله، اما به خاطر داشته باشید که شناسهها دیگر «امن برای نشانی وب» نخواهند بود مگر اینکه کاراکترهای خاص را خودتان رمزگذاری کنید. پیشنهاد میشود فقط از کاراکترهای ASCII استفاده کنید تا سازگاری و قابلیت اطمینان حفظ شود.
خلاصه
ابزار Nano ID Generator به شما امکان تولید شناسههای کوتاه، امن و قابل تنظیم را با پارامترهای انعطافپذیر میدهد. طول پیشفرض ۲۱ کاراکتر و الفبای ۶۴ تایی تعادلی عالی بین کوتاهی و مقاومت برخوردی فراهم میکند. با تغییر طول و الفبا میتوانید دقیقاً متناسب با نیاز خود شناسه تولید کنید. همه چیز در مرورگر و بدون ارسال داده به سرور انجام میشود، بنابراین حریم خصوصی شما حفظ میشود.