Эффективные методы хеширования строк в числа в JavaScript

В JavaScript существует несколько методов эффективного хеширования строк в числа. Хеширование — это распространенный метод, используемый при обработке данных и алгоритмах для преобразования строк в числовые значения, который может быть полезен для различных целей, таких как индексирование, хранение данных и безопасность. В этой статье блога мы рассмотрим несколько методов с примерами кода для хеширования строк в числа в JavaScript.

Метод 1: простое сложение хеширования

function simpleAdditionHash(str) {
  let hash = 0;
  for (let i = 0; i < str.length; i++) {
    hash += str.charCodeAt(i);
  }
  return hash;
}

Этот метод вычисляет хэш путем суммирования значений ASCII каждого символа строки.

Метод 2: полиномиальное скользящее хеширование

function polynomialRollingHash(str) {
  let hash = 0;
  const p = 31; // Prime number for rolling hash
  const m = 1e9 + 9; // Modulo value for avoiding overflow

  for (let i = 0; i < str.length; i++) {
    hash = (hash * p + str.charCodeAt(i)) % m;
  }

  return hash;
}

При полиномиальном скользящем хешировании хэш вычисляется, рассматривая строку как полином и используя простое число в качестве основы. Это снижает вероятность коллизий и обеспечивает хорошее распределение хеш-значений.

Метод 3: хеширование MD5 (с использованием библиотеки)

const md5 = require('md5');
function md5Hash(str) {
  return md5(str);
}

MD5 — это широко используемая криптографическая хэш-функция, которая создает 128-битное хеш-значение. Вы можете использовать такую ​​библиотеку, как «md5», для вычисления MD5-хеша строки в JavaScript.

Метод 4: хеширование SHA-256 (с использованием библиотеки)

const sha256 = require('js-sha256');
function sha256Hash(str) {
  return sha256(str);
}

SHA-256 – это популярная криптографическая хэш-функция, которая создает 256-битное хеш-значение. Вы можете использовать библиотеку типа js-sha256 для вычисления хеша строки SHA-256 в JavaScript.

В этой статье мы рассмотрели несколько методов хеширования строк в числа в JavaScript. Метод простого сложения прост, но не может обеспечить оптимальное распределение. Полиномиальное хеширование обеспечивает лучшее распределение и устойчивость к коллизиям. Если вам требуется безопасность на криптографическом уровне, рекомендуется использовать такие библиотеки, как MD5 или SHA-256. Выбор метода зависит от конкретного варианта использования и желаемых свойств хеша. Используя эти методы, вы можете эффективно преобразовывать строки в числа для индексации, хранения данных и других целей в JavaScript.