چه چیزی این مولد رمز عبور را متفاوت میکند؟
این یک مولد رمز عبور حریم خصوصیاول و فقط در مرورگر است. هر بایت تصادفی از مولد اعداد تصادفی رمزنگاریشده سیستمعامل شما از طریق crypto.getRandomValues میآید — هرگز از Math.random. صفحه هیچ درخواست شبکهای برای تولید رمز عبور نمیکند، و مقدار تولیدشده هرگز تب شما را ترک نمیکند. پانل Network در DevTools را باز کنید و Generate را کلیک کنید: ساکت میماند.
این مولد رمز عبور چگونه کار میکند؟
ابزار کاملاً در JavaScript داخل مرورگر شما اجرا میشود. هیچ دور برگشت سرور، هیچ بیکن analytics که مقدار را حمل کند و هیچ درخواست فونت از راه دور بعد از بارگذاری صفحه وجود ندارد.
- Seed از CSPRNG سیستمعامل. هر عدد صحیح تصادفی از
crypto.getRandomValues(new Uint32Array(n))کشیده میشود — همان منبع امن رمزنگاریشده که مرورگر برای مواد کلید TLS وcrypto.randomUUIDاستفاده میکند.Math.randomعمداً هرگز صدا زده نمیشود؛ یک grep در سراسر پروژه آن را اجبار میکند. - مونتاژ Charset. حالت کاراکتر تصادفی کلاسهای کاراکتر فعال — حروف بزرگ، حروف کوچک، ارقام، نمادها — را به یک الفبای واحد متصل میکند. تاگل «حذف مبهم» سپس نمادهای از نظر بصری مشابه (
0،O،o،1،l،I،|، backtick) را حذف میکند تا رمز عبور هنگام خوانده شدن با صدای بلند یا کپی با دست واضح باشد. - نمونهبرداری ایندکس بدون تعصب. نگاشت یک عدد صحیح ۳۲ بیتی بدون علامت به یک ایندکس charset به صورت ساده (modulo) یک تعصب کوچک معرفی میکند وقتی اندازه charset به طور مساوی ۲^۳۲ را تقسیم نمیکند. ابزار از rejection sampling استفاده میکند: هر نمونهای که در دنباله modulo میافتد دور انداخته و مجدداً کشیده میشود، بنابراین هر کاراکتر در charset به احتمال مساوی است.
- تولید انبوه. برای حالت کاراکتر تصادفی میتوانید ۱ تا ۵۰ رمز عبور را با یک کلیک درخواست کنید. هر نتیجه به عنوان یک ردیف با تخمین آنتروپی، سطل قدرت و دکمه Copy مخصوص خودش نمایش داده میشود. دکمه «Copy all» ردیفها را با خطوط جدید join میکند تا بتوانید در یک CSV یا فایل import vault پیست کنید.
- حالت Passphrase. تاگل حالت را برعکس کنید و صفحه به صورت lazy EFF Short Wordlist #1 (1296 کلمه انگلیسی public-domain) را در اولین استفاده fetch میکند. passphrase های پنجکلمهای حدود ۵۱.۷ بیت آنتروپی دارند — کافی برای حسابهای روزمره و بسیار بهیادماندنیتر از یک سوپ تصادفی ۹ کاراکتری. پس از آن یک fetch از همان مبدأ، صفحه دوباره ساکت میشود.
چرا از این مولد رمز عبور استفاده کنیم؟
- رمز عبور شما هرگز مرورگر شما را ترک نمیکند. هیچ endpoint سرور، هیچ فراخوانی analytics که مقدار را حمل کند، هیچ فونت از راه دور، هیچ telemetry. DevTools را باز کنید، یک رمز عبور تولید کنید و پانل Network را خالی نگاه دارید.
- تصادفی بودن امن رمزنگاریشده، بر اساس ساختار. هر عدد صحیح از
crypto.getRandomValuesمیآید، با rejection sampling در برابر تعصب modulo. رایجترین باگ در مولدهای رمز عبور مرورگر — استفاده ازMath.randomبرای آنتروپی — در اینجا از نظر ساختاری غیرممکن است. - دو حالت، یک ابزار. حالت کاراکتر تصادفی رشتههای با آنتروپی بالا برای مدیران رمز عبور تولید میکند؛ حالت passphrase رشتههای به سبک xkcd قابلبهیادآوری انسانی (
correct-horse-battery-staple) تولید میکند که توسط EFF Short Wordlist #1 پشتیبانی میشوند. همان مدل حریم خصوصی در هر دو. - آنتروپی شفاف. هر ردیف تولیدشده آنتروپی خود را در بیت و یک برچسب قدرت واضح نمایش میدهد، بنابراین میتوانید در یک نگاه ببینید آیا یک رشته ۱۲ کاراکتری بدون نماد واقعاً به اندازه یک passphrase ۵ کلمهای قوی است. بدون تعریف و تمجید بازاریابی، فقط اعداد.
کاربردهای رایج رمزهای عبور تولیدشده چیست؟
هر بار که به یک راز تصادفی تازه نیاز دارید، این ابزار سطح اعتماد را به حداقل میرساند:
- Import های مدیر رمز عبور. ۵۰ رمز عبور قوی را در یک دسته تولید کنید، Copy all را کلیک کنید، در یک CSV import vault خود پیست کنید. مقادیر هرگز از طریق هیچ سرور دور برگشت نکردند، بنابراین هیچ پنجرهای برای نشت بین تولید و ذخیرهسازی وجود ندارد.
- Master passphrase ها. به حالت passphrase بروید، ۶ یا ۷ کلمه انتخاب کنید، اختیاری هر کلمه را با حرف بزرگ شروع کنید، و یک رشته با آنتروپی بالا دارید که واقعاً میتوانید بدون نوشتن آن به یاد بسپارید. حدود ۶۲ بیت آنتروپی از ۶ کلمه — بسیار بالاتر از آستانه برای حمله آفلاین.
- کلیدهای API و توکنها در پروژههای جانبی. به یک راز مشترک یکبار مصرف برای یک کلید امضای webhook یا یک رمز عبور پایگاه داده توسعه نیاز دارید؟ یک رشته ۳۲ کاراکتری غنی از نماد اینجا تولید کنید، یک بار کپی کنید، و تنها مکانی که در حین انتقال وجود داشت داخل تب مرورگر خودتان بود.
یک مثال رمز عبور تولیدشده چه شکلی است؟
طول را روی ۱۶ تنظیم کنید، هر چهار کلاس کاراکتر را فعال بگذارید، و Generate را کلیک کنید. charset دارای ۲۶ + ۲۶ + ۱۰ + ۳۲ = ۹۴ کاراکتر است، بنابراین هر کاراکتر تولیدشده log2(94) ≈ ۶.۵۵ بیت آنتروپی حمل میکند. شانزده کاراکتر به حدود ۱۰۴.۹ بیت میرسند — بسیار بالاتر از آستانه «خیلی قوی» ۸۰ بیتی و عملاً غیرممکن برای brute-force با سختافزار فعلی. حالا به حالت passphrase بروید، ۵ کلمه با جداکننده خط تیره پیشفرض انتخاب کنید: cocktail-sprig-aspect-magenta-tonic دارای log2(1296) x 5 ≈ ۵۱.۷ بیت است. بهیادماندنی، قابلتایپ، و قویتر از رمز عبور متوسط انتخابشده توسط انسان.
تولید کنید، کپی کنید، ادامه دهید. صفحه هرگز یک سرور نمیبیند، رمز عبور هرگز تب شما را ترک نمیکند، و آنتروپی از اصول اولیه محاسبه میشود. این تنها وعده است.