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:
Ejemplo rápido de codificación y decodificación:
val sqids = Sqids.default
val id = sqids.encodeUnsafeString(1, 2, 3) // "86Rf07"
val numbers = sqids.decode(id) // List(1, 2, 3)
Si los IDs son muy cortos, puedes rellenarlos hasta cierta longitud:
Sqids
.withMinLength(10)
.foreach { sqids =>
val id = sqids.encodeUnsafeString(1, 2, 3) // "86Rf07xd4z"
val numbers = sqids.decode(id) // List(1, 2, 3)
}
Crea IDs únicos al barajar el alfabeto:
Alphabet("k3G7QAe51FCsPW92uEOyq4Bg6Sp8YzVTmnU0liwDdHXLajZrfxNhobJIRcMvKt")
.flatMap(Sqids.forAlphabet)
.foreach { sqids =>
val id = sqids.encodeUnsafeString(1, 2, 3) // "XRKUdQ"
val numbers = sqids.decode(id) // List(1, 2, 3)
}
La documentación completa está en https://github.com/sqids/sqids-scala
Si estás buscando el Hashids Scala original, puedes encontrarlo aquí: https://github.com/newhoggy/hashids-scala
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.