Що таке Sqids?

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

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

https://example.com/Lqj8a0

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

case sqids (encode [1, 2, 3]) of
  Left  {} -> print "Something went wrong."
  Right id -> print id -- "86Rf07"
case sqids (decode "86Rf07") of
  Left  {}      -> print "Something went wrong."
  Right numbers -> print numbers -- [1, 2, 3]

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

case runSqids defaultSqidsOptions{ minLength = 10 } (encode [1, 2, 3]) of
  Left  {} -> print "Something went wrong."
  Right id -> print id -- "86Rf07xd4z"

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

case runSqids defaultSqidsOptions{ alphabet = "k3G7QAe51FCsPW92uEOyq4Bg6Sp8YzVTmnU0liwDdHXLajZrfxNhobJIRcMvKt" } (encode [1, 2, 3]) of
  Left  {} -> print "Something went wrong."
  Right id -> print id -- "XRKUdQ"

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

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

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

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

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

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

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

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

Функції

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

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