Qu'est-ce que Sqids ?

Sqids est une bibliothèque open source qui vous permet de générer des identifiants courts uniques à partir de nombres. Ces identifiants sont sûrs pour les URL, peuvent encoder plusieurs nombres et ne contiennent pas de mots grossiers courants. Lire la suite .

Voici à quoi ils ressemblent :

https://example.com/Lqj8a0

Exemple rapide d'encodage et de décodage :

SELECT sqids_encode(1, 2, 3); -- 86Rf07
SELECT sqids_decode('86Rf07'); -- {1,2,3}

Si les identifiants sont trop courts, vous pouvez les compléter jusqu'à une certaine longueur :

SELECT sqids_encode(10::smallint, 1, 2, 3); -- 86Rf07xd4z
SELECT sqids_decode(10::smallint, '86Rf07xd4z'); -- {1,2,3}

Créer des identifiants uniques en mélangeant l'alphabet :

SELECT sqids_encode('k3G7QAe51FCsPW92uEOyq4Bg6Sp8YzVTmnU0liwDdHXLajZrfxNhobJIRcMvKt', 1, 2, 3); -- XRKUdQ
SELECT sqids_decode('k3G7QAe51FCsPW92uEOyq4Bg6Sp8YzVTmnU0liwDdHXLajZrfxNhobJIRcMvKt', 'XRKUdQ'); -- {1,2,3}

La documentation complète est disponible à https://github.com/sqids/sqids-postgresql

Si vous recherchez l'Hashids PostgreSQL original, vous pouvez le trouver ici : https://github.com/iCyberon/pg_hashids

Cas d'utilisation

L'utilisation principale de Sqids est purement visuelle. Si vous souhaitez utiliser des identifiants au lieu de nombres dans votre projet, Sqids pourrait être un bon choix.

Bons pour

  • Encodage des clés primaires Si vous utilisez une base de données relationnelle
  • Économie de recherches dans la base de données En encodant plusieurs objets
  • Jetons de connexion temporaires Sans grossièretés et sûr pour les URL

Pas bons pour

  • Données sensibles Ce n'est pas une bibliothèque de chiffrement
  • Identifiants utilisateur Peut révéler le nombre d'utilisateurs si quelqu'un découvre l'alphabet de codage

Fonctionnalités

  • 🆔 Générer des identifiants courts à partir de nombres non négatifs
  • Encodage et décodage faciles
  • 🫣 Les identifiants générés ne contiennent pas de grossièretés courantes
  • 🎲 Support des identifiants personnalisés via un alphabet mélangé
  • 🥳 45 intégrations (84% utilisent un nouveau design)
  • 📌 Chaque version produit les mêmes identifiants
  • 🍻 Petite bibliothèque avec une licence permissive

Exemple / Espace de jeu