Хеші SHA
Порахувати SHA-1, SHA-256, SHA-384 або SHA-512
Дані не залишають ваш браузер
Цей інструмент повністю працює на вашому пристрої: обчислення виконує JavaScript у вкладці. Ми не надсилаємо введений текст на сервер, не зберігаємо і не логуємо його. Можете сміливо працювати з робочими даними - і навіть відключити інтернет після завантаження сторінки.
Що робить хеш-функція
Хеш перетворює будь-який обсяг даних на рядок фіксованої довжини. Та сама вхідна строка завжди дає той самий результат, а найменша зміна - зовсім інший.
Головна властивість: операція незворотна. З хеша не можна відновити початкові дані - це не шифрування, і «розхешувати» нічого не можна.
Де це використовується
- Контроль цілісності: чи не пошкодився файл при завантаженні.
- Дедуплікація: два файли з однаковим SHA-256 - однакові.
- Кеш-ключі: хеш від параметрів запиту як ідентифікатор.
- Підписи вебхуків: у парі з секретом, але це вже HMAC.
- ETag у HTTP: хеш вмісту як версія ресурсу.
Чого робити не можна
Не зберігайте паролі як SHA-256. Хеш-функції загального призначення навмисно швидкі: сучасна відеокарта перебирає мільярди варіантів на секунду. Для паролів потрібен bcrypt або Argon2 - вони повільні за задумом.
Не використовуйте MD5 і SHA-1 там, де важлива безпека. Для обох існують практичні колізії: можна підібрати два різні документи з однаковим хешем. Для перевірки цілісності некритичних даних вони ще годяться, для підписів - ні.
SHA-256 - розумний вибір за замовчуванням. SHA-512 не «безпечніший» у побутовому сенсі, але на 64-бітних процесорах часто швидший.
У PHP
hash('sha256', 'Привіт');
hash_file('sha256', $path); // великий файл, без читання в пам'ять
// Порівняння хешів - тільки так, у сталий час.
// Звичайне === вразливе до timing-атак.
hash_equals($expected, $actual);
// Перелік доступних алгоритмів на вашому PHP
hash_algos();
У Laravel
// Кеш-ключ від складних параметрів
$key = 'search.' . hash('sha256', serialize($filters));
Cache::remember($key, now()->addHour(), fn () => $this->search($filters));
// Пароль - НЕ hash(), а Hash-фасад (bcrypt під капотом)
$user->password = Hash::make($request->password);
if (Hash::check($request->password, $user->password)) {
// ...
}
Цей інструмент рахує хеш у вашому браузері через Web Crypto API, тому введений текст нікуди не надсилається. MD5 у Web Crypto відсутній навмисно - саме через свою ненадійність.
- Де виконується
- у браузері
- Категорія
- Хеші й безпека