این ابزار درست کار نمی‌کند؟

دربارهٔ ابزار «هش bcrypt برای رمز عبور آنلاین»

این ابزار هش‌های bcrypt یک رمز عبور متن ساده را با استفاده از یک ضریب هزینه قابل پیکربندی محاسبه می‌کند. Bcrypt الگوریتم استاندارد صنعت برای هش کردن رمزهای عبور قبل از ذخیره آنها در پایگاه‌های داده است — طراحی شده تا کند و قابل تنظیم باشد، بنابراین افزایش سرعت سخت‌افزار در آینده می‌تواند با افزایش ضریب هزینه مقابله شود.

هنگام راه‌اندازی سیستم‌های احراز هویت، هنگام آزمایش اینکه ضریب هزینه انتخابی شما در مقیاس چقدر کند خواهد بود، هنگام تولید داده‌های آزمایشی با هش‌های واقع‌گرایانه، یا برای تأیید اینکه یک رمز عبور با هش bcrypt موجود مطابقت دارد، از آن استفاده کنید.

ضریب هزینه ۱۰-۱۲ را برای برنامه‌های وب معمولی انتخاب کنید (حدود ۱۰۰-۳۰۰ میلی‌ثانیه در هر هش روی سرورهای مدرن). هزینه‌های بالاتر (۱۳+) مقاومت بیشتری در برابر brute-force می‌دهند اما زمان ورود را به طور قابل توجهی کند می‌کنند.

چطور از این ابزار استفاده کنم؟

چطور یک bcrypt hash از یک رمز عبور plaintext محاسبه کنم؟

  1. رمز عبور را وارد کنید

    «Password» رشتهٔ plaintext برای hash است. whitespace مهم است — فاصلهٔ ابتدا/انتها بخشی از ورودی می‌شود که به‌ندرت آنچه می‌خواهید است.

  2. cost factor را انتخاب کنید

    «Cost (rounds)» پیش‌فرض 10 و در عمل 4-14 را می‌پذیرد. هر +1 کار را دوبرابر می‌کند — 12 تقریباً 1 ثانیه روی سرور مدرن؛ 14 ~4 ثانیه است. بالاترین مقداری که login budget شما تحمل می‌کند را انتخاب کنید.

  3. «اجرا» را بزنید

    خروجی یک `hash` — رشتهٔ 60-کاراکتری که با `$2b$10$…` شروع می‌شود. salt در هر اجرا تصادفی تولید می‌شود، پس همان رمز عبور هر بار hash متفاوتی می‌دهد — این درست است، باگ نیست.

  4. اعتبارسنجی بعدی

    برای اعتبارسنجی رمز عبور در برابر hash، از `compare(plaintext, hash)` کتابخانهٔ bcrypt استفاده کنید. cost factor را جداگانه ذخیره نکنید — در خود hash کدگذاری شده (`$2b$10$` می‌گوید cost 10).