¿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:

var
  Id: string;
  Numbers: TNumbers;
begin
  with TSqids.Create do
  try
    Id := Encode([1, 2, 3]); // '86Rf07'
    Numbers := Decode(Id); // [1, 2, 3]
  finally
    Free;
  end;
end;

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

var
  Id: string;
  Numbers: TNumbers;
begin
  with TSqids.Create(10) do
  try
    Id := Encode([1, 2, 3]); // '86Rf07xd4z'
    Numbers := Decode(Id); // [1, 2, 3]
  finally
    Free;
  end;
end;

Crea IDs únicos al barajar el alfabeto:

var
  Id: string;
  Numbers: TNumbers;
begin
  with TSqids.Create('k3G7QAe51FCsPW92uEOyq4Bg6Sp8YzVTmnU0liwDdHXLajZrfxNhobJIRcMvKt') do
  try
    Id := Encode([1, 2, 3]); // 'XRKUdQ'
    Numbers := Decode(Id); // [1, 2, 3]
  finally
    Free;
  end;
end;

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

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