Генератор хешів
Генеруйте криптографічні хеші з будь-якого тексту.
Що таке криптографічний хеш?
Криптографічна хеш-функція приймає будь-які вхідні дані — один символ, документ або цілий файл — і видає рядок фіксованої довжини з шістнадцяткових символів, який називається дайджестом. Одні й ті самі вхідні дані завжди дають однаковий хеш, але навіть незначна зміна вхідних даних призводить до повністю відмінного результату. Ця властивість називається лавинним ефектом.
Хеш-функції є однобічними: з хешу неможливо відновити оригінальні вхідні дані. Це принципово відрізняє їх від шифрування, яке призначене для зворотного перетворення за допомогою правильного ключа. Хешування використовується для перевірки цілісності даних, зберігання паролів, цифрових підписів та багатьох інших застосувань безпеки.
Підтримувані алгоритми хешування
- SHA-1: SHA-1 видає 160-бітний хеш (40 шістнадцяткових символів). Колись він був стандартом для TLS-сертифікатів і комітів Git, але у 2017 році були виявлені криптографічні слабкості. SHA-1 тепер застарів для використання в безпеці, але залишається поширеним для незахищених контрольних сум.
- SHA-256: SHA-256 видає 256-бітний хеш (64 шістнадцяткових символи). Це найпоширеніший сьогодні алгоритм, що захищає TLS-з'єднання, транзакції Bitcoin, сертифікати підпису коду та перевірку пакетів програмного забезпечення.
- SHA-384: SHA-384 видає 384-бітний хеш (96 шістнадцяткових символів). Це усічена версія SHA-512, яка зазвичай використовується в ланцюжках TLS-сертифікатів і конструкціях HMAC, де бажаний додатковий запас безпеки.
- SHA-512: SHA-512 видає 512-бітний хеш (128 шістнадцяткових символів). Він пропонує максимальну надійність у сімействі SHA-2 і може бути швидшим за SHA-256 на 64-бітних процесорах, оскільки нативно працює з 64-бітними словами.
Поширені способи використання хешування
- Перевірка цілісності файлів шляхом порівняння контрольних сум після завантаження.
- Безпечне зберігання паролів у базах даних (завжди з унікальною сіллю для кожного користувача).
- Генерація цифрових підписів для документів і програмних пакетів.
- Інвалідація кешу у веброзробці шляхом додавання хешів вмісту до імен файлів.
- Створення унікальних ідентифікаторів на основі вмісту у розподілених системах.
Хешування та шифрування
Шифрування є зворотним — дані можна розшифрувати за допомогою правильного ключа. Хешування є однобічною функцією — з хешу неможливо відновити оригінальний текст. Це робить хешування ідеальним для паролів (потрібно лише перевірити, а не відновити) та перевірки цілісності (потрібно лише виявити зміни).
Чи захищений мій текст?
Усе хешування використовує вбудований у браузер Web Crypto API (crypto.subtle). Ваш текст ніколи не передається на жоден сервер. Web Crypto API — це той самий криптографічний рушій, що використовується HTTPS, що забезпечує промислово надійні реалізації кожного алгоритму.
Часті запитання
Чи можуть два різних входи дати однаковий хеш?
Теоретично так — це називається колізією. Однак для SHA-256 для знаходження колізії потрібно приблизно 2¹²⁸ операцій, що є обчислювально неможливим при поточних або передбачуваних технологіях. Колізії SHA-1 були продемонстровані, саме тому він був застарілий.
Який алгоритм хешування слід використовувати?
Для більшості цілей SHA-256 є найкращим вибором. Він пропонує надійну безпеку, широку сумісність та відмінну продуктивність. Використовуйте SHA-512, якщо потрібен додатковий запас безпеки або ви працюєте на 64-бітних системах, де він може бути швидшим. Уникайте SHA-1 для будь-якого застосування, пов'язаного з безпекою.