K

ساخت هش (Hash)

ابزار توسعه دهنده · امنیت داده

ساخت هش MD5 و SHA

با این ابزار می توانید از هر متنی هش MD5، SHA-1، SHA-256 و SHA-512 بسازید. محاسبه به صورت زنده و کاملاً درون مرورگر انجام می شود و هیچ داده ای به سرور ارسال نمی شود. ورودی سازگار با فارسی است (UTF-8).

هش یک تابع یک طرفه است: هر ورودی — چه یک حرف چه یک فایل چندگیگابایتی — به یک رشتهٔ با طول ثابت تبدیل می شود (SHA-256 همیشه ۶۴ نویسهٔ هگز). کوچک ترین تغییر در ورودی، خروجی را کاملاً عوض می کند؛ به همین دلیل هش برای بررسی صحت داده عالی است. اما توجه کنید هش رمزنگاری نیست و برگشت پذیر نیست: نمی توان هش را «دیکریپت» کرد و به متن اصلی رسید.

مثال و طول خروجی
md5("test") = 098f6bcd4621d373cade4e832627b4f6 (۳۲ نویسه)
sha256("test") = 9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08 (۶۴ نویسه)
کاربردها
  • بررسی صحت (checksum) فایل ها و متن ها.
  • ساخت اثر انگشت (fingerprint) داده برای مقایسه.
  • ذخیرهٔ رمز عبور به صورت هش شده (همراه با salt و الگوریتم مخصوص رمز).
سوالات پرتکرار
هش (Hash) چیست؟
تابعی یک طرفه که هر ورودی را به رشته ای با طول ثابت تبدیل می کند؛ از روی هش نمی توان به متن اصلی رسید.
تفاوت هش با رمزنگاری چیست؟
رمزنگاری برگشت پذیر است (با کلید می توان رمزگشایی کرد)، اما هش یک طرفه و غیرقابل بازگشت است. هش برای «بررسی صحت» است، نه پنهان کردن قابل بازیابی داده.
آیا می توان هش را دیکد یا برگرداند؟
خیر. سایت هایی که ادعای «دیکد هش» دارند فقط در یک جدول از پیش محاسبه شده (rainbow table) دنبال ورودی های رایج می گردند؛ این معکوس کردن ریاضی نیست.
MD5 امن است؟
MD5 و SHA-1 «شکسته» شده اند و برای امنیت توصیه نمی شوند؛ برای رمز عبور از SHA-256 به بالا همراه با salt یا الگوریتم های مخصوص رمز (bcrypt/argon2) استفاده کنید.
چرا طول همهٔ هش های یک نوع یکسان است؟
چون هر الگوریتم خروجی با طول ثابت تولید می کند؛ MD5 همیشه ۳۲ نویسه و SHA-256 همیشه ۶۴ نویسهٔ هگز است، فارغ از اندازهٔ ورودی.