UTILS.
۱۰۰٪ در مرورگر
🔐

تولیدکننده و تأییدکننده‌ی هش Bcrypt

یک هش رمز عبور bcrypt با ضریب هزینه‌ی قابل‌انتخاب تولید کنید، یا یک رمز عبور ساده را در برابر یک هش $2b$ موجود تأیید کنید. کاملاً در مرورگر شما اجرا می‌شود.

رمزهای عبور ۱۰۰٪ در مرورگر شما هش می‌شوند — چیزی بارگذاری نمی‌شود.

— خروجی اینجا نمایش داده می‌شود —

درباره این ابزار

تولیدکننده و تأییدکننده‌ی هش Bcrypt، هش‌های رمز عبور bcrypt را بدون ارسال رمز عبور شما به سرور تولید و بررسی می‌کند. Bcrypt، طراحی‌شده توسط Provos و Mazières در 1999، زمان‌بندی کلید Eksblowfish را در یک ضریب کار تطبیقی می‌پیچد: پارامتر هزینه 2^cost دور راه‌اندازی کلید را تعیین می‌کند، بنابراین بالا بردن هزینه هر حدس را برای مهاجم به‌طور نمایی کندتر می‌کند در حالی که برای یک ورود مشروع واحد ارزان می‌ماند. حالت تولید 16 بایت نمک تصادفی را از crypto.getRandomValues مرورگر می‌خواند، راه‌اندازی Eksblowfish را با هزینه‌ی انتخابی شما اجرا می‌کند، ثابت 192 بیتی "OrpheanBeholderScryDoubt" را 64 بار رمزگذاری می‌کند، و رشته‌ی استاندارد Modular Crypt Format یعنی $2b$NN$ + نمک base64 22 نویسه‌ای + خلاصه‌ی base64 31 نویسه‌ای را صادر می‌کند.

الگوریتم به‌صورت یک نسخه‌ی WebAssembly بدون eval از bcrypt که به‌صورت محلی بارگذاری می‌شود اجرا می‌شود، بنابراین چیزی بارگذاری نمی‌شود و ابزار پس از بارگذاری آفلاین کار می‌کند. Bcrypt تنها 72 بایت اول رمز عبور را در نظر می‌گیرد — ابزار وقتی ورودی شما از آن حد فراتر رود هشدار می‌دهد تا هرگز از کوتاه‌شدن خاموش غافلگیر نشوید. ضریب هزینه از 4 تا 16 قابل‌انتخاب است (پیش‌فرض 10)؛ هر گام کار را دو برابر می‌کند، بنابراین 12 چهار برابر کندتر از 10 است.

حالت تأیید پیشوند $2b$/$2a$/$2y$، هزینه‌ی دورقمی، و نمک تعبیه‌شده را از یک هش موجود تجزیه می‌کند، خلاصه را با رمز عبور نامزد بازمحاسبه می‌کند، و مطابقت یا عدم‌مطابقت را گزارش می‌دهد. از آنجا که نمک و هزینه درون خودِ رشته‌ی هش سفر می‌کنند، تنها به رمز عبور و هش ذخیره‌شده برای بررسی یک ورود نیاز دارید. همه‌چیز درون‌صفحه محاسبه می‌شود — رمزهای عبور ۱۰۰٪ در مرورگر شما هش می‌شوند و چیزی بارگذاری نمی‌شود.

پرسش‌های پرتکرار

چه ضریب هزینه‌ای باید انتخاب کنم؟
هزینه 2^cost دور راه‌اندازی کلید را تعیین می‌کند. 10 (پیش‌فرض) یک خط پایه‌ی رایج است؛ 12 چهار برابر کندتر و انتخابی مدرن و خوب برای ورودهای تعاملی است. هزینه‌های بالاتر بهتر در برابر brute force مقاومت می‌کنند اما محاسبه‌شان بیشتر طول می‌کشد، پس امنیت را در برابر تأخیری که هر ورود می‌تواند تحمل کند بسنجید.
چرا رمز عبور طولانی من کوتاه می‌شود؟
Bcrypt طبق طراحی تنها 72 بایت اول ورودی را هش می‌کند — بایت‌های فراتر از آن نادیده گرفته می‌شوند. ابزار وقتی رمز عبور از 72 بایت UTF-8 فراتر رود هشدار می‌دهد تا بدانید انتها به هش کمک نمی‌کند. برای رازهای طولانی‌تر، پیش از bcrypt با SHA-256 پیش‌هش کنید.
آیا می‌توانم هشی را که با $2a$ یا $2y$ شروع می‌شود تأیید کنم؟
بله. حالت تأیید پیشوندهای $2a$، $2b$ و $2y$ را می‌پذیرد، که گونه‌های قابل‌تعویض همان الگوریتم هستند. هزینه و نمک را از هش می‌خواند، با رمز عبور شما بازمحاسبه می‌کند، و گزارش می‌دهد که آیا مطابقت دارند.
آیا رمز عبور من به جایی ارسال می‌شود؟
خیر. هش کردن و تأیید کاملاً در مرورگر شما از طریق یک نسخه‌ی WebAssembly محلی از bcrypt اجرا می‌شود. رمز عبور، نمک و هش هرگز دستگاه شما را ترک نمی‌کنند، بنابراین می‌توانید با خیال راحت اعتبارنامه‌های واقعی را آفلاین آزمایش کنید.

ابزارهای بیشتر