Sqids क्या है?

Sqids एक ओपन-सोर्स पुस्तकालय है जो आपको संख्याओं से छोटे अद्वितीय पहचानकर्ता उत्पन्न करने की अनुमति देता है। ये आईडी URL-सुरक्षित होती हैं, कई संख्याओं को एन्कोड कर सकती हैं, और सामान्य अश्लीलता वाले शब्द नहीं शामिल करतीं। और पढ़ें .

यह वे कैसे दिखते हैं:

https://example.com/Lqj8a0

त्वरित एन्कोड और डिकोड उदाहरण:

val sqids = Sqids.default
val id = sqids.encodeUnsafeString(1, 2, 3) // "86Rf07"
val numbers = sqids.decode(id) // List(1, 2, 3)

यदि आईडी बहुत छोटी हैं, तो आप उन्हें एक निश्चित लंबाई तक पैड कर सकते हैं:

Sqids
  .withMinLength(10)
  .foreach { sqids =>
    val id = sqids.encodeUnsafeString(1, 2, 3) // "86Rf07xd4z"
    val numbers = sqids.decode(id) // List(1, 2, 3)
  }

वर्णमाला को छानकर अद्वितीय आईडी बनाएं:

Alphabet("k3G7QAe51FCsPW92uEOyq4Bg6Sp8YzVTmnU0liwDdHXLajZrfxNhobJIRcMvKt")
  .flatMap(Sqids.forAlphabet)
  .foreach { sqids =>
    val id = sqids.encodeUnsafeString(1, 2, 3) // "XRKUdQ"
    val numbers = sqids.decode(id) // List(1, 2, 3)
  }

पूर्ण दस्तावेज़ीकरण यहाँ उपलब्ध है https://github.com/sqids/sqids-scala

यदि आप मूल Hashids Scala ढूंढ रहे हैं, तो आप इसे यहाँ पा सकते हैं: https://github.com/newhoggy/hashids-scala

उपयोग मामले

Sqids का मुख्य उपयोग केवल दृश्यिक रूप से है। अगर आप अपने प्रोजेक्ट में संख्याओं की बजाय आईडी का उपयोग करना चाहते हैं, तो Sqids एक अच्छा विकल्प हो सकता है।

अच्छा है

  • प्राथमिक कुंजी को एन्कोड करना यदि आप रिश्तायी डेटाबेस का उपयोग कर रहे हैं
  • डेटाबेस खोजें बचाना कई वस्तुओं को एन्कोड करके
  • अस्थायी लॉगिन टोकन्स अश्लीलता मुक्त और URL-सुरक्षित

अच्छा नहीं है

  • संवेदनशील डेटा यह एक एन्क्रिप्शन पुस्तकालय नहीं है
  • उपयोगकर्ता आईडी अगर कोई भी एन्कोडिंग वर्णमाला पता लगा लेता है तो उपयोगकर्ता गणना प्रकट कर सकती है

विशेषताएँ

  • 🆔 गैर-नकारात्मक संख्याओं से छोटे आईडी उत्पन्न करें
  • सरल एन्कोडिंग और डिकोडिंग
  • 🫣 ऑटो-जेनरेट किए गए आईडी में सामान्य अश्लीलता नहीं होती है
  • 🎲 विशेष आईडी के लिए शफल वर्णमाला का समर्थन
  • 🥳 44 एकीकरण (75% नए डिज़ाइन का उपयोग करते हैं।)
  • 📌 हर संस्करण में एक ही आईडी उत्पन्न होती है
  • 🍻 छोटी पुस्तकालय जो अनुमतिप्राप्त लाइसेंस के साथ है

उदाहरण / खेल क्षेत्र