O que é Sqids?

Sqids é uma biblioteca de código aberto que permite gerar identificadores únicos curtos a partir de números. Esses IDs são seguros para URLs, podem codificar vários números e não contêm palavras de baixo calão comuns. Leia mais .

Assim é como eles se parecem:

https://example.com/Lqj8a0

Exemplo rápido de codificação e decodificação:

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

Se os IDs forem muito curtos, você pode preenchê-los até um certo comprimento:

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)

Crie IDs únicos embaralhando o 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)

A documentação completa está em https://github.com/sqids/sqids-r

Se você está procurando pelo Hashids R original, você pode encontrá-lo aqui: https://github.com/ALShum/hashids-r

Casos de Uso

O principal uso de Sqids é puramente visual. Se você deseja usar IDs em vez de números em seu projeto, Sqids pode ser uma boa escolha.

Bom Para

  • Codificação de Chaves Primárias Se estiver usando um banco de dados relacional
  • Economizando consultas ao banco de dados Codificando vários objetos
  • Tokens temporários de login Livre de palavrões e seguro para URLs

Não É Bom Para

  • Dados Sensíveis Esta não é uma biblioteca de criptografia
  • IDs de Usuário Pode revelar a contagem de usuários se alguém descobrir o alfabeto de codificação

Recursos

  • 🆔 Gerar IDs curtos a partir de números não negativos
  • Codificação e decodificação fáceis
  • 🫣 IDs autogerados não contêm palavrões comuns
  • 🎲 Suporte para IDs personalizados através de um alfabeto embaralhado
  • 🥳 45 integrações (84% usam um novo design)
  • 📌 Cada versão produz os mesmos IDs
  • 🍻 Biblioteca pequena com uma licença permissiva

Exemplo / Playground