UTILS.
۱۰۰٪ در مرورگر
🛡️

تولیدکننده و تأییدکننده‌ی هش رمز عبور Argon2

یک هش رمز عبور Argon2id/i/d با حافظه، تکرار و موازی‌سازی قابل‌پیکربندی محاسبه کنید، یا یک رمز عبور را در برابر یک هش کدگذاری‌شده‌ی PHC تأیید کنید. سمت‌کاربر.

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

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

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

تولیدکننده و تأییدکننده‌ی هش رمز عبور Argon2، هش‌های Argon2 را کاملاً در مرورگر شما محاسبه و بررسی می‌کند. Argon2 برنده‌ی مسابقه‌ی هش رمز عبور 2015 شد و در RFC 9106 استانداردسازی شده است؛ برخلاف bcrypt حافظه‌سخت است، یعنی هزینه‌اش تحت سلطه‌ی مصرف RAM است، که دستگاه‌های کرک GPU و ASIC را ناکام می‌گذارد. حالت تولید 16 بایت نمک تصادفی را از crypto.getRandomValues می‌کشد و گونه‌ی انتخاب‌شده را با پارامترهای شما اجرا می‌کند: t تکرار (هزینه‌ی زمان)، m حافظه به KiB، p موازی‌سازی (lanes)، و طول هش خروجی به بایت.

سه گونه ارائه می‌شود. Argon2id (پیش‌فرض و انتخاب توصیه‌شده‌ی RFC) یک ترکیب است که هم در برابر حملات کانال جانبی و هم مبادله‌ی زمان-حافظه مقاومت می‌کند؛ Argon2i در برابر نشت کانال جانبی بهینه شده است؛ Argon2d مقاومت در برابر کرک GPU را بیشینه می‌کند اما در برابر کانال جانبی ایمن نیست. نتیجه یک رشته‌ی خودتوصیف‌گر PHC به فرم $argon2id$v=19$m=65536,t=3,p=1$<base64 salt>$<base64 hash> است، بنابراین هر پارامتر لازم برای تأیید درون هش سفر می‌کند. پیش‌فرض‌ها (t=3، m=65536 KiB = 64 MiB، p=1) از پروفایل توصیه‌شده‌ی دوم RFC 9106 پیروی می‌کنند.

از آنجا که کار به‌صورت یک نسخه‌ی WebAssembly بدون eval تحت سیاست امنیتی سختگیرانه‌ی مرورگر اجرا می‌شود، حافظه درون‌صفحه تخصیص می‌یابد: مقادیر بسیار بالای m از نظر RAM سنگین‌اند و می‌توانند روی تلفن‌ها کند باشند، بنابراین ابزار بالای 256 MiB هشدار می‌دهد. حالت تأیید گونه، نسخه، m/t/p، نمک و خلاصه را از یک هش کدگذاری‌شده تجزیه می‌کند، با رمز عبور نامزد بازمحاسبه می‌کند، و مطابقت یا عدم‌مطابقت را گزارش می‌دهد. رمزهای عبور ۱۰۰٪ در مرورگر شما هش می‌شوند و چیزی بارگذاری نمی‌شود.

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

کدام گونه‌ی Argon2 را باید استفاده کنم؟
Argon2id پیش‌فرض و توصیه‌ی RFC 9106 برای هش رمز عبور است — مقاومت کانال جانبی Argon2i را با مقاومت کرک GPU‌ای Argon2d ترکیب می‌کند. Argon2i را تنها اگر به‌طور خاص به دسترسی حافظه‌ی مستقل از داده نیاز دارید، و Argon2d را تنها در محیط‌های بدون خطر کانال جانبی استفاده کنید.
تنظیمات حافظه، تکرار و موازی‌سازی چه می‌کنند؟
حافظه (m، به KiB) همان RAM‌ای است که هش پر می‌کند — محرک اصلی هزینه. تکرار (t) تعداد گذرهایی است که روی آن حافظه انجام می‌شود. موازی‌سازی (p) تعداد lanes محاسبه‌شده به‌صورت همزمان است. m و t بالاتر یعنی هش‌های قوی‌تر و کندتر؛ پیش‌فرض‌ها m=65536 (64 MiB)، t=3، p=1 هستند.
چرا تنظیم حافظه‌ی بالا کند یا بی‌پاسخ است؟
Argon2 واقعاً حافظه‌ی درخواستی را در مرورگر شما تخصیص می‌دهد، بنابراین مقداری مانند 1 GiB (1048576 KiB) می‌تواند روی دستگاه‌های کم‌RAM متوقف شود یا شکست بخورد. ابزار بالای 256 MiB هشدار می‌دهد. اگر تولید معلق شد m را کاهش دهید؛ پارامترها در هر حال در هش ذخیره می‌شوند.
آیا هش هرچه لازم برای تأیید آن است را در بر دارد؟
بله. خروجی کدگذاری‌شده‌ی PHC گونه، نسخه، پارامترهای m/t/p، نمک و خلاصه را تعبیه می‌کند، بنابراین تأیید تنها به رمز عبور و آن یک رشته نیاز دارد. چیزی به جایی ارسال نمی‌شود — هم هش کردن و هم تأیید به‌صورت محلی از طریق WebAssembly اجرا می‌شود.

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