KB / Статті / Кодування, шифрування та хешування — у чому різниця
UA EN

Кодування, шифрування та хешування — у чому різниця

✍ admin 📅 22.09.2026 👁 27 переглядів

Чому це важливо

Половина «зашифрованого» тексту в CTF — насправді просто закодований. Плутанина між цими трьома поняттями коштує годин. Запам'ятай різницю раз і назавжди.

1. Кодування (Encoding) — це НЕ безпека

Мета: представити дані в іншому форматі (для передачі/сумісності), а не сховати. Оборотне без ключа — будь-хто розкодує.

  • Base64 — SGVsbG8= (літери+цифри+/+=). Base32 — лише великі + 2–7.
  • Hex — 48656c6c6f. URL-encoding — %20 = пробіл.
  • Ознака: немає ключа, є характерний алфавіт.
Hello → base64 → SGVsbG8=   (і назад без жодного пароля)

Якщо бачиш «зашифроване» без згадки про ключ — швидше за все, це кодування.

2. Шифрування (Encryption) — оборотне З КЛЮЧЕМ

Мета: сховати дані так, щоб прочитати міг лише власник ключа.

  • Симетричне (один ключ на шифрування й дешифрування): AES, ChaCha20.
  • Асиметричне (пара ключів: публічний/приватний): RSA, ECC.
"secret" + ключ → AES → 8f3a...   (без ключа не прочитати)

Без правильного ключа — обчислювально неможливо (якщо алгоритм і ключ сильні).

3. Хешування (Hashing) — НЕЗВОРОТНЕ

Мета: отримати «відбиток» фіксованої довжини. Не можна відновити оригінал.

  • SHA-256, SHA-512 — цілісність. bcrypt/argon2 — паролі (повільні навмисно).
  • MD5/SHA-1 — застарілі (колізії), не для безпеки.
"password" → SHA-256 → 5e884898da...   (назад — ніяк)

Як же «зламують» хеші? Не розшифровують, а перебирають: беруть слова зі словника, хешують і порівнюють (hashcat/john). Тому важливі сіль (salt) і повільні алгоритми.

Швидка шпаргалка

Ключ? Оборотне? Приклад
Кодування ні так, будь-ким Base64, Hex
Шифрування так так, з ключем AES, RSA
Хешування ні ні SHA-256, bcrypt

Практика: завдання Base32, ROT47, XOR та Atbash у Labs.

Коментарі (0)
Увійди, щоб залишити коментар.
Коментарів поки немає.
Вперше тут?
Новачок на Bastion?
Почни з гайду користувача.
Відкрити гайд →
?