Что такое хеширование

Ответ

Хеширование — это процесс преобразования данных произвольной длины в строку фиксированной длины (хеш) с помощью специальной функции (хеш-функции).

Особенности:

  • Детерминированность: одинаковые входные данные всегда дают одинаковый хеш.
  • Быстрота вычисления.
  • Необратимость: по хешу нельзя восстановить исходные данные.
  • Минимальные коллизии: разным данным редко соответствует один хеш.

Пример хеширования в 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

Применение: пароли, проверка целостности данных, уникальные идентификаторы.