DevTulz Online

مولد و تأییدکننده Bcrypt

10
بیشتر = امن‌تر اما کندتر

Bcrypt چیست؟

Bcrypt یک تابع هش‌سازی رمز عبور است که برای امنیت طراحی شده است. برخلاف توابع هش سریع (MD5، SHA-1)، bcrypt از طریق یک ضریب هزینه قابل تنظیم عمداً کند است — که باعث می‌شود حملات brute-force غیرعملی باشند. هر هش شامل یک salt تصادفی است، بنابراین رمزهای عبور یکسان هش‌های متفاوتی تولید می‌کنند. ضریب هزینه (دورها) زمان محاسبه را برای هر افزایش دو برابر می‌کند: هزینه ۱۰ حدود ۱۰۰ میلی‌ثانیه طول می‌کشد، هزینه ۱۲ حدود ۴۰۰ میلی‌ثانیه، هزینه ۱۴ حدود ۱.۵ ثانیه. هرگز رمزهای عبور را به صورت متن ساده ذخیره نکنید — همیشه آن‌ها را با bcrypt یا تابع تطبیقی مشابه هش کنید.

نحوه استفاده از مولد Bcrypt

  1. رمز عبور خود را در برگه 'Hash' وارد کنید و ضریب هزینه را انتخاب نمایید (۱۰–۱۲ برای اکثر برنامه‌ها توصیه می‌شود).

  2. روی 'تولید Hash' کلیک کنید — هش bcrypt در زیر ظاهر می‌شود و آماده ذخیره در پایگاه داده شماست.

  3. برای تأیید رمز عبور در برابر یک هش موجود، به برگه 'تأیید' بروید.

  4. رمز عبور متن ساده و هش bcrypt ذخیره شده را وارد کنید، سپس روی 'تأیید' کلیک کنید.

  5. علامت سبز تطابق را تأیید می‌کند؛ قرمز به معنای اشتباه بودن رمز عبور است.

سؤالات متداول

کدام عامل هزینه را باید استفاده کنم؟ برای اکثر برنامه‌های وب، عامل هزینه 10–12 تعادل خوبی بین امنیت و کارایی است. هزینه 10 (~100ms) کمترین مقدار توصیه‌شده است. برای حساب‌های با ارزش بالا از 12 (~400ms) استفاده کنید. از مقادیر کمتر از 10 پرهیز کنید، زیرا حملات brute-force را سریع‌تر می‌کند.

چرا دو hash از یک رمز عبور یکسان متفاوت به نظر می‌رسند؟ Bcrypt برای هر hash یک salt تصادفی 22 کاراکتری تولید می‌کند و آن را در خروجی جاسازی می‌کند. این بدان معنی است که رمز عبور یکسان در هنگام hash شدن دو بار، رشته‌های متفاوتی تولید می‌کند — این طراحی‌شده است تا حملات جدول رنگین‌کمان را جلوگیری کند.

فرمت رشته hash bcrypt چه معنی دارد؟ یک hash bcrypt به این شکل است: $2b$12$SaltSaltSaltSaltSaltSaHashHashHashHashHashHashHashHas. $2b$ نسخه الگوریتم است، $12$ عامل هزینه است و به دنبال آن 22 کاراکتر salt کدگذاری‌شده base64 و 31 کاراکتر hash می‌آید.

آیا می‌توانم از این برای تأیید رمزهای عبور پایگاه‌داده خود استفاده کنم؟ بله. hash bcrypt ذخیره‌شده از پایگاه‌داده خود و رمز عبور متنی را در تب Verify قرار دهید. این ابزار تأیید می‌کند که آیا با هم مطابقت دارند، که برای رفع مشکلات ورود حین توسعه مفید است.

Keywords: مولد bcrypt، هش bcrypt آنلاین، تأییدکننده bcrypt، هش‌سازی رمز عبور، ضریب هزینه bcrypt، هش رمز عبور bcrypt، بررسی bcrypt