Apa itu Sqids?

Sqids adalah sebuah perpustakaan sumber terbuka yang memungkinkan Anda untuk menghasilkan pengenal unik pendek dari angka. ID ini aman digunakan dalam URL, dapat mengkodekan beberapa angka, dan tidak mengandung kata-kata kasar umum. Baca lebih lanjut .

Inilah tampilannya:

https://example.com/Lqj8a0

Contoh encode & decode cepat:

case sqids (encode [1, 2, 3]) of
  Left  {} -> print "Something went wrong."
  Right id -> print id -- "86Rf07"
case sqids (decode "86Rf07") of
  Left  {}      -> print "Something went wrong."
  Right numbers -> print numbers -- [1, 2, 3]

Jika ID terlalu pendek, Anda bisa menambahkan panjangnya ke panjang tertentu:

case runSqids defaultSqidsOptions{ minLength = 10 } (encode [1, 2, 3]) of
  Left  {} -> print "Something went wrong."
  Right id -> print id -- "86Rf07xd4z"

Buat ID unik dengan mengacak abjad:

case runSqids defaultSqidsOptions{ alphabet = "k3G7QAe51FCsPW92uEOyq4Bg6Sp8YzVTmnU0liwDdHXLajZrfxNhobJIRcMvKt" } (encode [1, 2, 3]) of
  Left  {} -> print "Something went wrong."
  Right id -> print id -- "XRKUdQ"

Dokumentasi lengkap ada di https://github.com/sqids/sqids-haskell

Jika Anda mencari Hashids Haskell asli, Anda bisa menemukannya di sini: https://github.com/laserpants/hashids-haskell

Kasus Penggunaan

Penggunaan utama dari Sqids sepenuhnya bersifat visual. Jika Anda ingin menggunakan ID alih-alih angka dalam proyek Anda, Sqids bisa menjadi pilihan yang baik.

Bagus Untuk

  • Mengkodekan kunci primer Jika Anda menggunakan basis data relasional
  • Menyimpan pencarian basis data Dengan mengkodekan beberapa objek
  • Token login sementara Bebas kata-kata kasar dan aman digunakan dalam URL

Tidak Bagus Untuk

  • Data sensitif Ini bukan perpustakaan enkripsi
  • ID Pengguna Dapat mengungkap jumlah pengguna jika seseorang menemukan abjad pengkodean

Fitur

  • ๐Ÿ†” Menghasilkan ID pendek dari angka non-negatif
  • โœ… Pengkodean & dekoding mudah
  • ๐Ÿซฃ ID yang dihasilkan secara otomatis tidak mengandung kata-kata kasar umum
  • ๐ŸŽฒ Dukungan untuk ID kustom melalui abjad yang diacak
  • ๐Ÿฅณ 45 integrasi (84% menggunakan desain baru)
  • ๐Ÿ“Œ Setiap versi menghasilkan ID yang sama
  • ๐Ÿป Perpustakaan kecil dengan lisensi yang luwes

Contoh / Area Bermain