¿Qué es Sqids?

Sqids es una biblioteca de código abierto que te permite generar identificadores cortos únicos a partir de números. Estos IDs son seguros para URL, pueden codificar varios números y no contienen palabras malsonantes comunes. Leer más .

Así es cómo lucen:

https://example.com/Lqj8a0

Ejemplo rápido de codificación y decodificación:

settings <- sqids::sqids_options()
id <- sqids::encode(c(1, 2, 3), settings) # "86Rf07"
numbers <- sqids::decode(id, settings) # vector(1, 2, 3)

Si los IDs son muy cortos, puedes rellenarlos hasta cierta longitud:

settings <- sqids::sqids_options(min_length=10)
id <- sqids::encode(c(1, 2, 3), settings) # "86Rf07xd4z"
numbers <- sqids::decode(id, settings) # vector(1, 2, 3)

Crea IDs únicos al barajar el alfabeto:

settings <- sqids::sqids_options(
  alphabet = "k3G7QAe51FCsPW92uEOyq4Bg6Sp8YzVTmnU0liwDdHXLajZrfxNhobJIRcMvKt"
)
id <- sqids::encode(c(1, 2, 3), settings) # "XRKUdQ"
numbers <- sqids::decode(id, settings) # vector(1, 2, 3)

La documentación completa está en https://github.com/sqids/sqids-r

Si estás buscando el Hashids R original, puedes encontrarlo aquí: https://github.com/ALShum/hashids-r

Casos de uso

El uso principal de Sqids es puramente visual. Si prefieres usar IDs en lugar de números en tu proyecto, Sqids podría ser una buena elección.

Bueno Para

  • Codificación de claves primarias Si estás usando una base de datos relacional
  • Ahorro de consultas a la base de datos Al codificar varios objetos
  • Tokens de inicio de sesión temporales Libre de vulgaridades y seguro para URL

No Bueno Para

  • Datos sensibles Esto no es una biblioteca de encriptación
  • IDs de Usuario Puede revelar la cantidad de usuarios si alguien descubre el alfabeto de codificación

Características

  • 🆔 Generar IDs cortos a partir de números no negativos
  • Codificación y decodificación sencillas
  • 🫣 Los IDs autogenerados no contienen palabras malsonantes comunes
  • 🎲 Soporte para IDs personalizados a través de un alfabeto aleatorio
  • 🥳 44 integraciones (75% utilizan un nuevo diseño)
  • 📌 Cada versión produce los mismos IDs
  • 🍻 Biblioteca pequeña con una licencia permisiva

Ejemplo / Playground