رمز عبور Bcrypt ژنراتور
هش رمز عبور امن bcrypt را فوراً در مرورگر خود ایجاد کنید. فاکتور هزینه و رمز عبور هش خود را در سمت مشتری انتخاب کنید — کاملا خصوصی و رایگان.
هش رمز عبور امن bcrypt را فوراً در مرورگر خود ایجاد کنید. فاکتور هزینه و رمز عبور هش خود را در سمت مشتری انتخاب کنید — کاملا خصوصی و رایگان.
bcrypt یک تابع هش کردن رمز عبور است که توسط نیلز پروووس و دیوید مازیرس در سال 1999 طراحی شد و از رمز Blowfish مشتق شده است. برخلاف توابع هش همهمنظوره مانند SHA-256، bcrypt عمدا کند است – و از طریق یک پارامتر هزینه، به صورت تنظیمشده کند است – که دقیقاً همان خاصیتی است که یک هشر رمز عبور به آن نیاز دارد. یک تابع هش سریعتر به مهاجمان اجازه می دهد تا نامزدهای بیشتری را در هر ثانیه اعمال کنند. کندتر آنها را محدود می کند.
bcrypt همچنین نمک هر رمز عبور را به صورت خودکار ترکیب میکند و کل دسته حملات را بر اساس جداول رنگین کمان از پیش محاسبهشده حذف میکند. پارامتر salt و cost به عنوان بخشی از خروجی bcrypt ذخیره میشوند، بنابراین تأیید فقط به هش ذخیرهشده و رمز عبور نامزد نیاز دارد - بدون مدیریت نمک جداگانه. این ترکیب کندی، نمک، و فرمت مستقل، bcrypt را به هش رمز عبور پیشفرض برای دو دهه و امروزه به یک انتخاب قوی تبدیل کرده است.
جایگزین های مدرن وجود دارد. Argon2 در سال 2015 مسابقه هش کردن رمز عبور را برنده شد و علاوه بر سختی زمان، سختی حافظه را نیز ارائه می دهد. scrypt ویژگی های مشابهی را ارائه می دهد. برای طرح های جدید، Argon2id انتخاب پیشنهادی است. bcrypt همچنان قابل قبول و به طور گسترده مستقر است، به ویژه در محیط هایی که Argon2 در دسترس نیست.
ذخیره گذرواژه ها به صورت متن ساده یک اشتباه است. ذخیره سازی آنها با هش سریعی مانند SHA-256 به سختی بهتر است - پردازنده های گرافیکی مدرن میلیاردها هش SHA-256 را در ثانیه محاسبه می کنند و حملات brute-force علیه هر رمز عبور رایج را در چند ساعت امکان پذیر می کنند. کندی عمدی bcrypt اقتصاد را تغییر میدهد: با ضریب هزینه ۱۲، مهاجم تقریباً ۲۵۰ میلیثانیه برای هر رمز عبور نامزد هزینه میکند، که استفاده از brute force را برای هر رمز عبور غیرمعمولی غیرعملی میکند.
نمک خودکار هر رمز عبور bcrypt نیز حملات جدول رنگین کمان را شکست می دهد. دو کاربر با رمز عبور یکسان، هش های bcrypt متفاوتی تولید می کنند، زیرا نمک های آنها متفاوت است. به خطر انداختن پایگاه داده رمز عبور به مهاجم اجازه نمی دهد تا رمزهای عبور رایج یا بازدیدهای جدول از پیش محاسبه شده را به سرعت شناسایی کند.
رمز عبور را تایپ کنید، هزینه را انتخاب کنید، هش را دریافت کنید.
bcrypt از مرحله تنظیم کلید Blowfish رمزنگاری اصلاح شده استفاده می کند که 2^زمان هزینه تکرار شده است. عامل هزینه لگاریتمی است — هزینه 12 دو برابر کندتر از هزینه 11، چهار برابر کندتر از هزینه 10 است. این مقیاس لگاریتمی به مدیران اجازه می دهد تا با بهبود سخت افزار، بدون طراحی مجدد سیستم، هزینه را در طول زمان افزایش دهند.
فرمت خروجی $version$cost$saltAndHash است که در آن saltAndHash با یک الفبای سفارشی با پایه 64 کدگذاری شده است. نسخه معمولاً $2b$ (نوع مدرن با رفع اشکال wraparound) یا $2y$ (مشخص برای PHP، معادل) است. نمک 16 بایت است. هش 24 بایت است. آنها با هم به 53 کاراکتر از custom-base64 کد می کنند.
حداکثر طول ورودی 72 بایت است (محدودیت طول کلید Blowfish). گذرواژههای طولانیتر بهطور بیصدا کوتاه میشوند، که این یک ابهام دیرینه bcrypt است. بهترین روش این است که طول رمز عبور را به 72 بایت محدود کنید یا با SHA-256 پیش هش کنید تا طول را قبل از bcrypt عادی کنید.