Перейти до вмісту
TextArray

Що таке хеш? MD5, SHA-256 і коли вам дійсно потрібен HMAC

Blog /

Хеш-функції перетворюють будь-який вхід на відбиток фіксованої довжини, але не всі хеші створюються однаковими. Вибір між MD5, SHA-256 і HMAC означає різницю між робочою перевіркою безпеки та перевіркою, яка мовчки завершується. У цьому посібнику пояснюється, що робить кожен, коли його використовувати та як перевірити власні хеші прямо у вашому браузері.

Що таке хеш-функція?

Хеш-функція приймає будь-яку кількість даних — текст, файл, пароль — і створює рядок символів фіксованої довжини. Той самий вхід завжди дає однаковий вихід, що робить хеші корисними для перевірки. Змініть хоча б один символ у вхідних даних, і геш зміниться повністю. Ця одностороння властивість (ви не можете скасувати хеш, щоб повернути вихідні дані) є тим, що робить його корисним для безпеки.

MD5: швидкий, але зламаний

MD5 створює 128-бітний хеш і колись був стандартом для контрольних сум і перевірки файлів. Сьогодні він криптографічно зламаний — зіткнення (два різні вхідні дані створюють однаковий хеш) можна швидко знайти. MD5 все ще з’являється в застарілих системах і для небезпечних контрольних сум, але ніколи для автентифікації чи паролів. Використовуйте Хеш генератор щоб побачити вихід MD5, але використовуйте SHA-256 для всього, що має значення.

SHA-256: поточний стандарт

SHA-256 (частина сімейства SHA-2) створює 256-бітний хеш і є сучасним вибором для криптографічної роботи. Він достатньо швидкий для більшості програм, стійкий до відомих атак і широко підтримується. Ви побачите SHA-256 використовується в системах блокчейн, відбитках сертифікатів і хешуванні паролів. The Хеш генератор підтримує SHA-256 як алгоритм за замовчуванням.

HMAC: коли вам потрібен секрет

Проста хеш-функція є детермінованою — будь-хто може перевірити хеш. Ан HMAC (Код автентифікації повідомлення на основі хешу) змішує секретний ключ, тому лише той, хто знає ключ, може створити правильний хеш. Це важливо для API: сервер і клієнт мають спільний секрет, кожен підписує ним свої повідомлення, а одержувач перевіряє відповідність підпису. Це доводить, що повідомлення надійшло від заявленого відправника та не було змінено. The Генератор HMAC дозволяє перевірити це за допомогою власного секретного ключа.

Коли використовувати кожен підхід

  1. Використовуйте звичайний SHA-256 для перевірки цілісності файлів, хешування паролів (з сіллю та повільною функцією, як-от bcrypt), і загальнодоступних відбитків пальців.
  2. використання HMAC для підписання запитів API, перевірки вебхуку та будь-якого сценарію, коли обидві сторони діляться секретом.
  3. Пропустити MD5 для всього, що стосується безпеки. Використовуйте його лише під час взаємодії із застарілими системами, яким це потрібно.

Ваші дані залишаються на вашому пристрої

Обидва Хеш генератор і Генератор HMAC працювати повністю у вашому браузері. Ваш текст ніколи не надсилається на сервер — він хешується локально на вашому пристрої, працює в автономному режимі після завантаження сторінки та не потребує облікового запису чи входу. Це означає, що ви можете безпечно хешувати конфіденційну інформацію, наприклад ключі API, для тестування, не відкриваючи її в Інтернеті.

Бонус: вимірювання ентропії

Якщо ви створюєте секрети або паролі, Ентропія Шеннона калькулятор показує, скільки випадковості (і, отже, безпеки) у рядку. Вища ентропія означає важче вгадати. Використовуйте його, щоб переконатися, що ваші згенеровані секрети насправді є випадковими, перш ніж їх розгортати.