هش (Hash) چیست و چرا اهمیت دارد؟
هر بار که رمز عبور خود را تغییر میدهید، فایلی دانلود میکنید یا یک API درخواست میزند، احتمالاً یک تابع هش در پشتصحنه کار میکند. هش یا اثر انگشت دیجیتال داده نام دارد — تابعی ریاضی که هر ورودی با هر طولی را به یک رشتهی ثابت و منحصربهفرد تبدیل میکند. این فرآیند یکطرفه است: از هش نمیتوان به دادهی اصلی رسید.
ویژگیهای کلیدی توابع هش
- قطعیبودن (Determinism): ورودی یکسان همیشه هش یکسان میدهد.
- برگشتناپذیری: از خروجی نمیتوان ورودی را بازسازی کرد.
- اثر بهمن (Avalanche Effect): تغییر یک کاراکتر در ورودی، کل هش را کاملاً عوض میکند.
- طول ثابت: هش SHA-256 همیشه ۶۴ کاراکتر هگزادسیمال است، صرفنظر از اندازهی ورودی.
- مقاومت در برابر تصادم (Collision Resistance): عملاً غیرممکن است دو ورودی متفاوت هش یکسان بدهند.
الگوریتمهای هش و مقایسهی آنها
نه تمام الگوریتمهای هش یکسان هستند و نه برای یک هدف ساخته شدهاند. این مقایسه به انتخاب درست کمک میکند:
- MD5 (128 بیت / 32 کاراکتر): قدیمیترین و پرکاربردترین. برای چکسام فایل هنوز رایج است ولی برای رمزنگاری رمز عبور بههیچعنوان امن نیست — آسیبپذیری تصادم از سال ۱۹۹۶ شناخته شده است.
- SHA-1 (160 بیت / 40 کاراکتر): جانشین MD5، ولی از سال ۲۰۱۷ توسط گوگل بهصورت عملی شکسته شد (حملهی SHAttered). فقط برای سازگاری با سیستمهای قدیمی استفاده شود.
- SHA-256 (256 بیت / 64 کاراکتر): استاندارد طلایی. در بیتکوین، TLS، امضای دیجیتال و اکثر سیستمهای مدرن استفاده میشود. توصیهی اول برای اکثر کاربردها.
- SHA-384 و SHA-512 (384/512 بیت): امنیت بالاتر برای دادههای حساس، گواهیهای SSL و سیستمهای دولتی.
- SHA-3 / Keccak: نسل بعدی استاندارد NIST، با معماری کاملاً متفاوت (Sponge Construction). ایدهآل وقتی میخواهید به SHA-2 وابسته نباشید.
- HMAC (Hash-based Message Authentication Code): ترکیب هش با یک کلید مخفی برای تأیید هویت پیام. پایهی توکن JWT و امضای API.
کاربردهای عملی هش در توسعه وب
توابع هش در بسیاری از لایههای یک اپلیکیشن وب حضور دارند:
- ذخیرهی رمز عبور: هیچگاه رمز عبور بهصورت plaintext ذخیره نکنید. از bcrypt یا SHA-256+salt استفاده کنید.
- تأیید یکپارچگی فایل (Checksum): بررسی اینکه فایل دانلودشده دستکاری نشده — با مقایسهی MD5 یا SHA-256.
- امضای دیجیتال API: HMAC-SHA256 برای تأیید هویت درخواستهای API بدون ارسال کلید در هر بار.
- Cache busting: اضافه کردن هش محتوا به نام فایل (مثلاً
app.a3f91c.js) برای کنترل کش مرورگر. - توکن JWT: امضای payload با HMAC-SHA256 برای جلوگیری از دستکاری توکن.
- Merkle Tree و بلاکچین: SHA-256 زیرساخت اصلی زنجیرهی بلاکهای بیتکوین است.
ابزار آنلاین هش ساز وزیروب
با ابزار محاسبه Hash رمزنگاری آنلاین - Hash Generator وزیروب میتوانید همزمان ۹ الگوریتم هش را برای یک ورودی محاسبه کنید: SHA-1، SHA-256، SHA-384، SHA-512، SHA3-256، SHA3-512، MD5، MD4 و CRC32. علاوه بر هش متن، امکان هش فایل (تا ۵۰ مگابایت) و محاسبهی HMAC با کلید دلخواه نیز وجود دارد. بخش مقایسهی هش به راحتی چکسام دو فایل یا رشته را با هم مقایسه میکند. تمام پردازشها درون مرورگر انجام میشود — هیچ دادهای به سرور ارسال نمیشود.