Sqids คืออะไร?

Sqids เป็นไลบรารีโอเพนซอร์สที่ช่วยให้คุณสามารถสร้างตัวระบุที่สั้นและไม่ซ้ำกันจากตัวเลขได้ การระบุเหล่านี้ปลอดภัยสำหรับ URL สามารถเข้ารหัสตัวเลขหลายตัวและไม่มีคำหยาบที่พบบ่อย อ่านเพิ่มเติม .

นี่คือรูปแบบของพวกเขา:

https://example.com/Lqj8a0

ตัวอย่างการเข้ารหัสและถอดรหัสด่วน:

DEFINE VARIABLE sqids   AS Sqids     NO-UNDO.
DEFINE VARIABLE numbers AS INTEGER   EXTENT 3 NO-UNDO.
DEFINE VARIABLE id      AS CHARACTER NO-UNDO.

sqids = NEW Sqids().

ASSIGN
	numbers[1] = 1
	numbers[2] = 2
	numbers[3] = 3.

id = sqids:Encode(numbers). // '86Rf07'.
numbers = sqids:Decode(id). // [1, 2, 3]

หาก ID สั้นเกินไปคุณสามารถเติมขยายความยาว:

DEFINE VARIABLE sqids   AS Sqids     NO-UNDO.
DEFINE VARIABLE numbers AS INTEGER   EXTENT 3 NO-UNDO.
DEFINE VARIABLE id      AS CHARACTER NO-UNDO.

sqids = NEW Sqids('', 10).

ASSIGN
	numbers[1] = 1
	numbers[2] = 2
	numbers[3] = 3.

id = sqids:Encode(numbers). // '86Rf07xd4z'.
numbers = sqids:Decode(id). // [1, 2, 3]

สร้าง ID ที่ไม่ซ้ำกันโดยการสลับอักษร:

DEFINE VARIABLE sqids   AS Sqids     NO-UNDO.
DEFINE VARIABLE numbers AS INTEGER   EXTENT 3 NO-UNDO.
DEFINE VARIABLE id      AS CHARACTER NO-UNDO.

sqids = NEW Sqids('k3G7QAe51FCsPW92uEOyq4Bg6Sp8YzVTmnU0liwDdHXLajZrfxNhobJIRcMvKt').

ASSIGN
	numbers[1] = 1
	numbers[2] = 2
	numbers[3] = 3.

id = sqids:Encode(numbers). // 'XRKUdQ'.
numbers = sqids:Decode(id). // [1, 2, 3]

คำแนะนำแบบเต็มอยู่ที่ https://github.com/sqids/sqids-openedge-abl

การใช้งาน

การใช้งานหลักของ Sqids เป็นเพียงแค่การมองเห็น หากคุณต้องการใช้รหัสตัวระบุแทนตัวเลขในโปรเจกต์ของคุณ Sqids อาจเป็นทางเลือกที่ดี

เหมาะสำหรับ

  • การเข้ารหัสคีย์หลัก หากคุณกำลังใช้ฐานข้อมูลเชิงสัมพันธ์
  • การเก็บค้นภายในฐานข้อมูล โดยการเข้ารหัสวัตถุหลายรายการ
  • โทเค็นการเข้าสู่ระบบชั่วคราว ปลอดคำหยาบและปลอดภัยสำหรับ URL

ไม่เหมาะสำหรับ

  • ข้อมูลที่อ่อนไหว นี่ไม่ใช่ไลบรารีการเข้ารหัส
  • ไอดีผู้ใช้ สามารถแสดงจำนวนผู้ใช้หากมีใครสังเกตเห็นอักขระที่ใช้เข้ารหัส

คุณสมบัติ

  • 🆔 สร้าง ID สั้นจากตัวเลขที่ไม่เป็นลบ
  • การเข้ารหัสและถอดรหัสง่าย
  • 🫣 รหัสที่สร้างอัตโนมัติไม่มีคำหยาบที่พบบ่อย
  • 🎲 รองรับการใช้รหัสที่กำหนดเองผ่านอักษรตกแต่ง
  • 🥳 46 การผสาน (85% ใช้ดีไซน์ใหม่)
  • 📌 ทุกเวอร์ชันสร้างรหัสเดียวกัน
  • 🍻 ไลบรารีขนาดเล็กที่มีใบอนุญาตโปร่งใส

ตัวอย่าง / สนามเล่น