تولیدکننده UUID نسخه 4
UUID شناسه ای ۳۶ کاراکتری است که برای تشخیص یکتای رکوردها، فایل ها، رویدادها، نشست ها یا نمونه های آزمایشی استفاده می شود. این ابزار در مرورگر UUID نسخه 4 تولید می کند و می تواند در هر بار از ۱ تا ۲۰ شناسه بسازد. خروجی در قالب رایج xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx نمایش داده می شود. اگر گزینه حروف بزرگ را فعال کنید، همان شناسه ها با حروف A تا F بزرگ نوشته می شوند؛ در غیر این صورت خروجی با حروف کوچک است.
UUID v4 چگونه ساخته می شود؟
در UUID نسخه 4 بخش اصلی شناسه از داده تصادفی می آید. منطق صفحه از crypto.getRandomValues برای گرفتن بایت تصادفی استفاده می کند و سپس قالب استاندارد نسخه 4 را رعایت می کند؛ یعنی رقم نسخه در بخش سوم مقدار 4 دارد و بیت های variant در بخش چهارم مطابق قالب UUID تنظیم می شوند. نتیجه برای بسیاری از کاربردهای نرم افزاری احتمال برخورد بسیار پایینی دارد، به خصوص وقتی شناسه ها در مقیاس معمول برنامه، تست یا لاگ ساخته می شوند.
کاربردهای رایج UUID
توسعه دهندگان از UUID برای کلید رکوردهای دیتابیس، شناسه سفارش داخلی، نام فایل موقت، correlation id در لاگ ها، شناسه درخواست API، نمونه داده تستی و اتصال داده های چند سیستم استفاده می کنند. مزیت UUID این است که بدون هماهنگی مرکزی قابل تولید است؛ چند سرویس می توانند جداگانه شناسه بسازند و همچنان احتمال تکرار بسیار کم باشد. این ویژگی در سیستم های توزیع شده، queue ها، ذخیره سازی ابری و ابزارهای تست بسیار کاربردی است.
چه زمانی مناسب نیست؟
UUID v4 برای رمز عبور، توکن ورود، کلید API یا راز امنیتی طراحی نشده است، حتی اگر تصادفی به نظر برسد. برای این موارد باید از مکانیزم های امنیتی اختصاصی و طول مناسب استفاده کنید. همچنین اگر به شناسه های کوتاه، مرتب شونده بر اساس زمان یا خوانا برای انسان نیاز دارید، ممکن است ULID، شناسه عددی ترتیبی یا قالب سفارشی بهتر باشد. UUID طولانی است و در URL یا رابط کاربری ممکن است سنگین به نظر برسد، اما برای شناسایی فنی و کاهش برخورد گزینه ای قابل اعتماد است.
نکته برای دیتابیس و API
اگر UUID را در دیتابیس ذخیره می کنید، نوع ستون و ایندکس گذاری را با حجم داده هماهنگ کنید. در API ها نیز بهتر است شناسه را همان طور که تولید شده منتقل کنید و از بریدن یا کوتاه کردن آن پرهیز کنید؛ کوتاه کردن شناسه احتمال برخورد را افزایش می دهد و مزیت اصلی UUID را کم می کند.
نظرات