امنیت ۲۰۲۶/۱۰/۲۲ · ۶ دقیقه مطالعه

فرق انکودینگ، هشینگ و رمزنگاری در چیست؟

نویسنده: تیم آرنا

سه مفهوم، سه هدف متفاوت

خیلی‌ها این سه را قاطی می‌کنند. بیایید روشنشان کنیم.

انکودینگ (Encoding)

تبدیل داده به قالبی دیگر برای انتقال یا ذخیره، نه امنیت. کاملاً برگشت‌پذیر و بدون کلید.

echo "hello" | base64      # aGVsbG8=
echo "aGVsbG8=" | base64 -d

Base64 هیچ امنیتی ندارد. هر کسی می‌تواند آن را دیکد کند.

هشینگ (Hashing)

تبدیل یک‌طرفه به یک اثر انگشت با طول ثابت. برگشت‌پذیر نیست. برای ذخیرهٔ رمز عبور (با نمک) و بررسی صحت داده استفاده می‌شود.

  • الگوریتم‌های خوب: bcrypt، argon2
  • هرگز از md5 یا sha1 برای رمز عبور استفاده نکن

رمزنگاری (Encryption)

تبدیل دوطرفه با کلید. فقط کسی که کلید را دارد می‌تواند داده را بازگرداند. برای محرمانگی استفاده می‌شود (مثل TLS).

جمع‌بندی

هدف ابزار
انتقال داده انکودینگ
ذخیرهٔ رمز هشینگ
محرمانگی رمزنگاری

این دقیقاً همان چیزی است که در نبرد «انکودینگ، رمزنگاری نیست» در میدان آرنا تجربه می‌کنی.