تولیدکنندهٔ هش و بررسی چک‌سام

MD5، SHA-1، SHA-256، SHA-384 و SHA-512 هر متن یا فایلی را یکجا بگیرید، HMAC را با کلید مخفی محاسبه کنید و یک فایل را با چک‌سام منتشرشده مقایسه کنید.

اجرا در مرورگر شمابدون ثبت‌نامبدون آپلود

نحوهٔ استفاده از تولیدکنندهٔ هش

  1. متن را تایپ یا جای‌گذاری کنید، یا به حالت فایل بروید و فایلی را رها کنید. فایل‌های بزرگ به‌صورت تکه‌تکه و با نوار پیشرفت خوانده می‌شوند.
  2. هر پنج هش یکجا محاسبه می‌شوند. خروجی hex با حروف کوچک، HEX با حروف بزرگ یا Base64 را انتخاب کنید.
  3. گزینهٔ HMAC را فعال کنید و یک کلید مخفی (به‌صورت متن، hex یا Base64) وارد کنید تا HMAC-SHA256 کلیددار و سایر نسخه‌های HMAC را بگیرید.
  4. برای بررسی یک فایل دانلودی، چک‌سام منتشرشده را در بررسی چک‌سام جای‌گذاری کنید. الگوریتم منطبق برجسته می‌شود.

هش چیست؟

یک تابع هش رمزنگاری هر ورودی را به اثرانگشتی با طول ثابت تبدیل می‌کند. ورودی یکسان همیشه هش یکسان می‌دهد، تغییر یک بایت هشی کاملاً متفاوت تولید می‌کند و نمی‌توان هش را به ورودی اصلی برگرداند. همین ویژگی‌ها هش را برای بررسی یکپارچگی فایل، ساخت کلید کش، حذف داده‌های تکراری و امضای پیام‌ها ایده‌آل می‌کند.

از کدام الگوریتم استفاده کنم؟

الگوریتمخروجیکاربرد
MD5128 بیت · 32 hexفقط چک‌سام‌های قدیمی و کلیدهای کش غیرامنیتی. ساختن تصادم (collision) آسان است.
SHA-1160 بیت · 40 hexشناسه‌های اشیای Git و سیستم‌های قدیمی. مقاومت در برابر تصادم آن از 2017 شکسته شده است.
SHA-256256 بیت · 64 hexانتخاب پیش‌فرض: چک‌سام دانلودها، امضاها، بلاک‌چین‌ها، امضای درخواست‌های API.
SHA-384 / SHA-512384 / 512 بیتحاشیهٔ امنیت بالاتر؛ SHA-512 روی CPUهای 64 بیتی اغلب از SHA-256 سریع‌تر است.

از هیچ‌کدام از این‌ها برای ذخیرهٔ رمز عبور استفاده نکنید. آن‌ها برای سرعت طراحی شده‌اند که به نفع مهاجمان است. به‌جای آن از یک هش کند مخصوص رمز عبور مانند Argon2id، scrypt یا bcrypt استفاده کنید.

بررسی چک‌سام فایل

ناشران نرم‌افزار اغلب یک SHA-256 کنار هر دانلود منتشر می‌کنند. فایل را اینجا رها کنید، مقدار منتشرشده را جای‌گذاری کنید و ابزار می‌گوید که مطابقت دارند یا نه. می‌توانید خط را مستقیماً از فایل SHA256SUMS جای‌گذاری کنید؛ نام فایل بعد از هش نادیده گرفته می‌شود. دستورهای معادل:

sha256sum file.iso          # Linux
shasum -a 256 file.iso      # macOS
certutil -hashfile file.iso SHA256   # Windows

HMAC چیست؟

HMAC (RFC 2104) یک کلید مخفی را با هش ترکیب می‌کند، بنابراین فقط کسی که کلید را دارد می‌تواند مقدار را تولید یا بررسی کند. وب‌هوک‌های Stripe، GitHub و Slack با HMAC-SHA256 امضا می‌شوند و JWTهایی با الگوریتم HS256 هم از آن استفاده می‌کنند. هنگام دیباگ، بدنهٔ خام درخواست و کلید امضای خود را جای‌گذاری کنید تا امضا را بازتولید کنید.

پرسش‌های متداول

آیا فایل‌های من برای محاسبهٔ هش آپلود می‌شوند؟
خیر. متن و فایل‌ها به‌صورت محلی با Web Crypto API مرورگر (و یک پیاده‌سازی داخلی MD5) هش می‌شوند. هیچ چیزی از دستگاه شما خارج نمی‌شود.
چرا هش من با هش ابزار دیگری فرق دارد؟
معمولاً ورودی متفاوت است: یک خط جدید در انتها، پایان خط ویندوزی (CRLF در برابر LF) یا کدگذاری متنی متفاوت. این ابزار متن را دقیقاً همان‌طور که تایپ شده و به‌صورت UTF-8 هش می‌کند، بدون افزودن خط جدید. توجه کنید که echo "text" | sha256sum یک خط جدید اضافه می‌کند؛ از echo -n استفاده کنید.
آیا می‌توان هش را رمزگشایی کرد؟
خیر. هش‌کردن یک‌طرفه است. سایت‌هایی که MD5 یا SHA-1 را «رمزگشایی» می‌کنند، فقط مقدار را در جدول‌هایی از هش ورودی‌های رایج جست‌وجو می‌کنند؛ به همین دلیل هش‌کردن رشته‌های کوتاه یا رایج بدون کلید مخفی امن نیست.
آیا SHA-256 همان SHA-2 است؟
SHA-256 یکی از اعضای خانوادهٔ SHA-2 است که SHA-224، SHA-384 و SHA-512 را هم شامل می‌شود. SHA-3 طراحی متفاوت و جدیدتری است.
چه فایل‌هایی با چه حجمی را می‌توانم هش کنم؟
تا 2 GB، محدود به حافظهٔ مرورگر. فایل‌ها در تکه‌های 4 MB و با نوار پیشرفت خوانده می‌شوند تا صفحه پاسخگو بماند.

ابزارهای مرتبط