hashids – алгоритм генерации строкового ID из числа, примерно как в URL видео на YouTube. Реализации есть на всех нужных языках, от JS и Python и до PostgreSQL.
Основные особенности:
- ID непоследовательные. То есть, имея два ID нельзя сказать, какой был раньше и сколько было до этого.
- ID короткие. Лучше задать минимальную длину, но по умолчанию все числа до 43 дают строку всего в 2 символа.
- ID расшифровываемые. То есть, слово “hash” в названии немного ложь.
- ID не криптостойкие. То есть, имея достаточно много сгенерированных ID, соль найти не так уж и сложно, а там и новые ID самостоятельно генерировать, и оригинальное число узнать. Так что если нужно быть увереным, что ID не подделан, надо вместе с ним криптостойкий хэш генерировать, например.
По-хорошему, везде вместо реальных ID лучше передавать хотя бы вот такую вот hashids-сгенерированную строку.