انجمن علمی برنامه نویسی دانشگاه شهید‌ رجایی: post #349 — TG.ME

🔐 هَش (Hash) چیه و چرا تقریباً همه‌جا باهاش سروکار داریم؟

احتمالاً تا حالا برات پیش اومده که بخوای یک برنامه یا فایل رو دانلود و نصب کنی و در صفحه دانلود، کنار اون متنی مثل SHA-256 ببینی؛ جلوی اون هم یک عبارت طولانی و با طول ثابت نوشته شده.

تا حالا فکر کردی این عبارت چیه ؟ 🤔
به خروجی این تابع، Hash (هش) می‌گیم.

هش (Hash) یک تابع هست که یک ورودی با اندازه دلخواه رو دریافت می‌کنه و اون رو به یک خروجی با اندازه ی مشخص تبدیل می‌کنه.
مثلاً:
Hello
   ↓
SHA-256
   ↓
185f8db32271fe25f561a6fc938b2e264306ec304eda518007d1764826381969

حالا اگر فقط یک کاراکتر از ورودی تغییر کنه، Hash به‌طور چشمگیری تغییر می‌کنه:
hello
   ↓
SHA-256
   ↓
2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824

حتی اگر دو تصویر کاملاً شبیه هم باشن و فقط یک نقطه‌ی بسیار کوچک به یکی از اون‌ها اضافه کنیم، Hash اون‌ها متفاوت خواهد شد.

به همین دلیل می‌تونیم Hash رو مثل یک اثر انگشت دیجیتال برای داده‌ها در نظر بگیریم. 💻

🛠 حالا Hash کجا استفاده میشه؟

🔹 بررسی صحت فایل‌ها
وقتی یک فایل دانلود می‌کنی، می‌تونی Hash اون رو با مقدار اعلام‌شده توسط منبع مقایسه کنی.
اگر مقدارها یکسان باشن، می‌تونی مطمئن بشی که فایل دریافت‌شده با فایل موردنظر یکسانه.

🔹 تشخیص فایل‌های تکراری
اگر دو فایل دقیقاً محتوای یکسانی داشته باشن، Hash یکسانی خواهند داشت. به همین دلیل می‌تونیم با Python برنامه‌ای بنویسیم که بین هزاران فایل، فایل‌های تکراری رو پیدا کنه.

🔹 ذخیره Password
سیستم‌های امن نباید Password کاربران رو به صورت متن ساده ذخیره کنن.برای ذخیره Password معمولاً از الگوریتم‌های مخصوص Password Hashing مثل:
Argon2

bcrypt

scrypt

استفاده میشه.
🔹گیت( Git)
اگر با Git کار کرده باشی، احتمالاً برات جالبه بدونی Hash نقش مهمی در شناسایی Objectها و محتوای Git داره.

🔹 امنیت و رمزنگاری
همچنین Hash Functionها در بخش‌های مختلف امنیت اطلاعات و رمزنگاری کاربرد دارن و یکی از مفاهیم پایه‌ای در دنیای امنیت محسوب میشن.

⚠️باید بدونیم که Hash با Encryption یکی نیست!
این دو مفهوم رو خیلی‌ها با هم اشتباه می‌گیرن.
🔐 Encryption (رمزنگاری):
داده رو با استفاده از یک کلید رمز می‌کنیم و با کلید مناسب می‌تونیم داده اصلی رو بازیابی کنیم.
🔒 Hashing:
هدف، تولید یک مقدار نماینده برای داده است و در حالت معمول قرار نیست بتوانیم با یک عملیات معکوس ساده، داده اصلی رو از Hash به دست بیاریم.

💻 یک مثال ساده با Python
import hashlib

text = "Hello"

result = hashlib.sha256(
    text.encode()
).hexdigest()

print(result)

اینجا با استفاده از SHA-256، Hash مربوط به
"Hello"

محاسبه میشه. میتونی با تغییر text هش عبارت دلخواهت رو به دست بیاری  👀

#TechTime
#TechTimeCodeAutopsy

💻 انجمن علمی برنامه‌نویسی
🔗 @sru_cmp_dev
❤7
August 22, 2026 110