Ответ
Хеширование — это процесс преобразования данных произвольной длины в строку фиксированной длины (хеш) с помощью специальной функции (хеш-функции).
Особенности:
- Детерминированность: одинаковые входные данные всегда дают одинаковый хеш.
- Быстрота вычисления.
- Необратимость: по хешу нельзя восстановить исходные данные.
- Минимальные коллизии: разным данным редко соответствует один хеш.
Пример хеширования в JS:
// Используем Web Crypto API для хеширования
async function hashData(data) {
const encoder = new TextEncoder();
const dataBuffer = encoder.encode(data);
const hashBuffer = await crypto.subtle.digest('SHA-256', dataBuffer);
const hashArray = Array.from(new Uint8Array(hashBuffer));
return hashArray.map(b => b.toString(16).padStart(2, '0')).join('');
}
hashData('Hello, world!').then(console.log); // Выведет хеш SHA-256
Применение: пароли, проверка целостности данных, уникальные идентификаторы.