ابزارهای تولیدکننده
تولیدکنندههایی برای ساخت شناسههای تصادفی، رمزهای عبور امن و کدهای QR — همه بهصورت محلی در مرورگر شما محاسبه میشوند، با تصادفیبودن امن رمزنگارانه در جایی که اهمیت دارد.
کارهای سریع
با یک کلیک، ابزار از قبل برای همان کار تنظیمشده باز میشود.
تولیدکنندههای آنلاین - شناسه، رمز عبور و کد QR
سه چیزی که یک برنامهنویس بیش از همه باید از هیچ بسازد عبارتاند از یک شناسهٔ یکتا، رازی که کسی نتواند حدسش بزند، و لینکی که ماشین بتواند بخواند. ابزارهای این دسته هر سه را پوشش میدهند و ویژگی مشترکی دارند که از هر قابلیتی مهمتر است: تصادفی بودن از مولد رمزنگارانهٔ خود مرورگر شما میآید و نتیجه به هیچ جا فرستاده نمیشود.
این دسته شامل چیست
| ابزار | چه تولید میکند | چه وقت به کارتان میآید |
|---|---|---|
| تولیدکنندهٔ UUID | UUID نسخهٔ ۱، ۳، ۴، ۵ و ۷، یکییکی یا هزارتا یکجا | به کلید اصلی، شناسهٔ همبستگی یا نام فایلی نیاز دارید که نتواند تصادم کند |
| تولیدکنندهٔ رمز عبور | رمزهای عبور و عبارتهای عبور تصادفی با طول و مجموعهٔ نویسهٔ قابل تنظیم | دارید اعتبارنامهای میسازید که هیچکس نباید حدسش بزند و هرگز نباید تکرار شود |
| تولیدکنندهٔ کد QR | کد QR برای آدرس، متن، شبکهٔ وایفای و اطلاعات تماس | لینکی باید از یک نمایشگر یا کاغذ چاپی به گوشی کسی منتقل شود |
| مولد CSS | گرادیانت، سایهٔ جعبه و گوشههای گرد، ساختهشده با اسلایدر و پیشنمایش زنده | میخواهید پیش از چسباندن CSS یک افکت در فایل استایل، با چشم مطمئن شوید درست به نظر میرسد |
| ساخت متا تگ | تگهای سئو، Open Graph و کارت X با پیشنمایش زندهٔ گوگل، Facebook و X | صفحهای در آستانهٔ انتشار است و باید در نتایج جستجو و هنگام اشتراکگذاری درست دیده شود |
چه چیزی یک تولیدکننده را قابل اعتماد میکند
هر زبانی میتواند عددی تولید کند که تصادفی به نظر برسد. اما بسیار کماند توابعی که برای چیزی که باید غیرقابل حدس بماند مناسب باشند. تابع Math.random() در جاوااسکریپت یک مولد شبهتصادفی سریع است که با مقدار کمی حالت درونی مقداردهی میشود؛ با خروجی کافی، مهاجم میتواند بقیهاش را پیشبینی کند. برای بُر زدن یک اسلایدر کافی است و برای ساختن رمز عبور یا توکن نشست ناکافی.
منبع درست در مرورگر crypto.getRandomValues() است که از مخزن رمزنگارانهٔ امن سیستمعامل برمیدارد - همان مخزنی که TLS را تغذیه میکند. هم تولیدکنندهٔ رمز عبور و هم تولیدکنندهٔ UUID اینجا از آن استفاده میکنند. ارزش دارد این پرسش را از هر تولیدکنندهای بپرسید، چون از بیرون هر دو یکسان به نظر میرسند: هر دو رشتههایی میسازند که تصادفی مینمایند.
نیمهٔ دوم قابل اعتماد بودن این است که مقدار به کجا میرود. رمز عبوری که روی سرور ساخته شده دستکم یک بار منتقل شده و ممکن است در یک لاگ، یک کش یا یک نسخهٔ پشتیبان وجود داشته باشد. ساختن در مرورگر یعنی تنها نسخهٔ موجود همان چیزی است که روی نمایشگر شماست، تا وقتی خودتان تصمیم بگیرید ذخیرهاش کنید.
انتخاب قالب شناسه
یک UUID برابر ۱۲۸ بیت است که به شکل ۳۶ نویسه نوشته میشود. نکتهاش این است که دو ماشینی که هرگز با هم ارتباط نداشتهاند، هرکدام میتوانند یکی بسازند و مطمئن باشند تصادم نمیکنند. همین ویژگی است که به یک گوشی اجازه میدهد آفلاین رکورد بسازد، به یک کارگر صف اجازه میدهد پیش از نوشته شدن یک سطر به آن ارجاع دهد، و به دو پایگاه داده اجازه میدهد بدون شمارهگذاری دوباره در هم ادغام شوند.
نسخهٔ ۴ گزینهٔ پیشفرض همهمنظوره است: ۱۲۲ بیت تصادفی و بدون هیچ فرادادهای. نسخهٔ ۷ یک مهر زمانی میلیثانیهای را در بیتهای ابتدایی میگذارد، طوری که مقادیر بهعنوان رشتهٔ ساده هم به ترتیب زمانی مرتب میشوند و سطرهای تازه بهجای پخش شدن در سراسر ایندکس، در انتهایش مینشینند - انتخاب درست برای کلید اصلی در جدولی پرترافیک. نسخههای ۳ و ۵ قطعیاند: همان فضای نام و همان نام همیشه همان UUID را میدهند، و اینطور میشود از یک آدرس، شناسهای پایدار مشتق کرد. نسخهٔ ۱ بیشتر هنگام خواندن دادههای قدیمی به چشم میآید.
اعداد صحیح ترتیبی اطلاعاتی را لو میدهند که UUID نمیدهد. آدرس /invoice/1042 به هر کسی که ببیندش میگوید تقریباً چند فاکتور صادر کردهاید و دعوتش میکند ۱۰۴۳ را هم امتحان کند. این یک ملاحظهٔ طراحی است نه یک کنترل امنیتی، اما ملاحظهای واقعی است.
چه چیزی واقعاً یک رمز عبور را قوی میکند
طول بر پیچیدگی میچربد. هر نویسهٔ اضافه، فضای جستوجو را در اندازهٔ الفبا ضرب میکند، در حالی که افزودن یک نماد به رمزی کوتاه فقط یک بار ضربش میکند. رمزی ۲۰ نویسهای از حروف کوچک و رقم، بهمراتب سختتر از رمزی ۸ نویسهای با نماد و حرف بزرگ مورد حمله قرار میگیرد - و بهمراتب راحتتر هم تایپ میشود.
قواعد پیچیدگی که بیشتر سایتها تحمیل میکنند - یک حرف بزرگ، یک رقم، یک نماد - برای این طراحی شده بودند که جلوی انتخاب password توسط انسان را بگیرند. به رمز عبور تولیدشده هیچ کمکی نمیکنند و آدمها را به الگوهای قابل پیشبینی هل میدهند: یک حرف بزرگ در ابتدا و یک 1! در انتها. رمز تولیدشده را روی بیشترین طولی که سایت میپذیرد بگذارید و بگذارید مجموعهٔ نویسهها همانی باشد که قبولش میکند.
- هرگز تکرار نکنید. حملهٔ پرکردن اعتبارنامه از این رو کار میکند که یک سایت نشتکرده، ورود معتبر به بیست سایت دیگر را به مهاجم تحویل میدهد.
- از مدیر رمز عبور استفاده کنید. اینکه رمز تولیدشده را نمیتوانید به خاطر بسپارید دقیقاً نکتهٔ ماجراست؛ چیزی باید ذخیرهاش کند.
- مراقب نویسههای مبهم باشید. اگر قرار است رمزی بلند خوانده شود یا از روی کاغذ تایپ شود،
l،I،1،Oو0را کنار بگذارید. - عبارتهای عبور جای خودشان را دارند. چند واژهٔ تصادفی هم بهخاطرسپردنیاند و هم بلند، که به همان انگشتشمار رمزی میخورد که واقعاً باید در ذهن داشته باشید - ورود به دستگاه، و خود مدیر رمز عبور.
- تعویض دورهای دیگر توصیه نمیشود. راهنمایی امروزی این است که وقتی دلیلی برای گمان به افشا وجود دارد رمز را عوض کنید، نه هر نود روز؛ تعویض اجباری فقط تغییرات قابل پیشبینی میسازد.
کد QR: چه حمل میکند و چه نمیتواند
کد QR یک بارکد دوبعدی است که تکهای متن کوتاه را نگه میدارد - بیشتر اوقات یک آدرس، اما همچنین اطلاعات وایفای، یک شمارهٔ تلفن، یک رویداد تقویم یا یک vCard. این یک لینک به تصویری میزبانیشده نیست؛ داده در خود نقش نهفته است، پس کدی که میسازید برای همیشه کار میکند بیآنکه سرویسی پشتش باشد.
تولیدکنندهٔ کد QR اینجا نقش را در مرورگر میسازد، یعنی آدرسی که کدگذاری میکنید توسط شخص ثالثی ثبت نمیشود - وقتی لینک یک داشبورد داخلی یا یک آدرس امضاشده است دانستنش میارزد. دو نکتهٔ عملی: تصحیح خطا باعث میشود کد حتی وقتی بخشی از آن آسیب دیده یا زیر یک لوگو پنهان شده باز هم اسکن شود، به قیمت نقشی متراکمتر؛ و کنتراست بیش از اندازه اهمیت دارد. کد به حاشیهای خلوت دور خودش نیاز دارد و باید تیره روی روشن باشد؛ کدهای وارونه یا کمکنتراست در بسیاری از اسکنرها شکست میخورند.
دستههای مرتبط
- ابزارهای توسعهدهنده - وقتی به اثر انگشت یک مقدار تولیدشده نیاز دارید آن را هش کنید، یا مهر زمانی نهفته در یک UUID نسخهٔ ۱ یا ۷ را بخوانید.
- ابزارهای کدگذاری - اسرار تولیدشده معمولاً پیش از نشستن در یک فایل تنظیمات یا یک سرآیند، به Base64 کدگذاری میشوند.
- ابزارهای متن - همان JSON را که قرار است دستهای شناسهٔ تولیدشده در آن چسبانده شود اعتبارسنجی کنید.