hashids – алгоритм генерации строкового ID из числа, примерно как в URL видео на YouTube. Реализации есть на всех нужных языках, от JS и Python и до PostgreSQL.

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

  1. ID непоследовательные. То есть, имея два ID нельзя сказать, какой был раньше и сколько было до этого.
  2. ID короткие. Лучше задать минимальную длину, но по умолчанию все числа до 43 дают строку всего в 2 символа.
  3. ID расшифровываемые. То есть, слово “hash” в названии немного ложь.
  4. ID не криптостойкие. То есть, имея достаточно много сгенерированных ID, соль найти не так уж и сложно, а там и новые ID самостоятельно генерировать, и оригинальное число узнать. Так что если нужно быть увереным, что ID не подделан, надо вместе с ним криптостойкий хэш генерировать, например.

По-хорошему, везде вместо реальных ID лучше передавать хотя бы вот такую вот hashids-сгенерированную строку.