Що таке Sqids?

Sqids - це бібліотека з відкритим вихідним кодом, яка дозволяє генерувати короткі унікальні ідентифікатори з чисел. Ці ідентифікатори безпечні для URL, можуть кодувати кілька чисел і не містять спільних нецензурних слів. Дізнатися більше .

Отак вони виглядають:

https://example.com/Lqj8a0

Швидкий приклад кодування та декодування:

Sqids = sqids:new(),
Id = sqids:encode([1, 2, 3], Sqids). % "86Rf07"
Numbers = sqids:decode(Id, Sqids). % [1,2,3]

Якщо ID занадто короткі, ви можете доповнити їх до певної довжини:

Sqids = new(#{ min_length=>10 }),
Id = sqids:encode([1, 2, 3], Sqids). % "86Rf07xd4z"
Numbers = sqids:decode(Id, Sqids). % [1,2,3]

Створіть унікальні ID, переставляючи алфавіт:

Sqids = new(#{ alphabet=><<"k3G7QAe51FCsPW92uEOyq4Bg6Sp8YzVTmnU0liwDdHXLajZrfxNhobJIRcMvKt">> }),
Id = sqids:encode([1, 2, 3], Sqids). % "XRKUdQ"
Numbers = sqids:decode(Id, Sqids). % [1,2,3]

Повна документація доступна на https://github.com/sqids/sqids-erlang

Якщо ви шукаєте оригінальний Hashids Erlang, ви можете знайти його тут: https://github.com/snaiper80/hashids-erlang

Використання

Основне використання Sqids - це виключно візуальне. Якщо ви хочете використовувати ідентифікатори замість чисел у своєму проекті, Sqids може бути хорошим вибором.

Добре підходить для

  • Кодування основних ключів Якщо використовуєте реляційну базу даних
  • Економія запитів до бази даних Кодуючи кілька об'єктів
  • Тимчасові токени входу Без нецензурної лексики та безпечні для URL

Не підходить для

  • Чутлива інформація Це не бібліотека шифрування
  • Ідентифікатори користувачів Може розкрити кількість користувачів, якщо хтось дізнається алфавіт кодування

Функції

  • 🆔 Генерувати короткі ідентифікатори з не-від'ємних чисел
  • Просте кодування та декодування
  • 🫣 Автоматично згенеровані ідентифікатори не містять спільних нецензурних слів
  • 🎲 Підтримка власних ідентифікаторів через випадковий алфавіт
  • 🥳 44 інтеграцій (75% використовують новий дизайн)
  • 📌 Кожна версія генерує однакові ідентифікатори
  • 🍻 Невелика бібліотека з дозволеною ліцензією

Приклад / Майданчик