• Sqids คืออะไร?

    Sqids เป็นไลบรารีที่เล็กน้อยที่เปิดเผยและสามารถสร้าง ID ที่มีลักษณะเหมือนสุ่มและสั้นจากตัวเลขได้

    วิธีที่ดีที่สุดในการคิดเกี่ยวกับมันคือเหมือนเครื่องแปลงทศนิยมเป็นฐานสิบหก แต่มีคุณลักษณะเพิ่มเติมบางอย่าง

  • การย่อลิงก์ สร้าง ID อย่างเป็นเอกลักษณ์สำหรับการเข้าสู่ระบบการเข้าถึง เพิ่ม ID สำหรับผลิตภัณฑ์/วัตถุบนเว็บไซต์ (เช่น YouTube ทำสำหรับวิดีโอ) สร้าง ID สั้นสำหรับข้อความในข้อความ รหัสยืนยันในอีเมล ฯลฯ

  • ข้อมูลที่ละเอียดอ่อน การสร้าง ID ไม่ใช่การทำ hash และสามารถถอดรหัสกลับเป็นตัวเลขได้ ตัวอย่างเช่น อาจจะไม่เป็นทางเลือกที่ดีสำหรับ ID ของผู้ใช้ เพราะเมื่อถอดรหัสแล้ว อาจเปิดเผยจำนวนผู้ใช้แอปของคุณ

  • ฉันสามารถเข้ารหัสตัวเลขหลายตัวพร้อมกันได้หรือไม่?

    ใช่ Sqids สามารถเข้ารหัสตัวเลขหนึ่งหรือหลายตัวเลขไม่เป็นติดกันเป็น ID เดียวได้ ไม่มีขีดจำกัดในจำนวนที่คุณสามารถเข้ารหัสได้ แต่มีขีดจำกัดในจำนวนที่คุณสามารถเข้ารหัสได้ (ขึ้นอยู่กับภาษาการดำเนินงาน)

    นี่เป็นประโยชน์หลายประการ: คุณสามารถเข้ารหัสเวลา UNIX และสร้าง ID ที่หมดอายุ หรือคุณสามารถเข้ารหัสหมายเลขชาร์ดฐานข้อมูลพร้อมกับกุญแจหลักและประหยัดในการค้นซอร์สฐานข้อมูลเพิ่มเติม

  • ID ที่สร้างมีความเป็นเอกลักษณ์หรือไม่?

    ใช่ ID ที่สร้างมีความเป็นเอกลักษณ์ต่อข้อมูลนำเข้าและอักษรตัวอักษร

    อย่าลืมว่าอักษรตัวเล็กและตัวพิมพ์ใหญ่อยู่ในอักษรเริ่มต้น ดังนั้น ID เริ่มต้นเป็นตัวอักษรที่สำคัญ

  • ข้อจำกัดของ Sqids คืออะไร?

    Sqids ไม่สามารถเข้ารหัสตัวเลขที่เป็นลบ

    ความยาวขั้นต่ำของตัวอักษรอักษรมี 3 ตัวอักษร

    อักษรตัวอักษรไม่สามารถมีอักขระหลายไบต์ได้

    Sqids ไม่สามารถสร้าง ID ได้ในความยาวบางอย่าง แต่ต้องอย่างน้อยความยาวหนึ่งความยาวพารามิเตอร์ขั้นต่ำอยู่ระหว่าง 0 และ 255

    Sqids สามารถพยายามทำการสร้าง ID ใหม่ได้ สูงสุดความยาวของตัวอักษรลบหนึ่ง

  • ฉันจะทำให้ ID ของฉันเป็นเอกลักษณ์ได้อย่างไร?

    ไลบรารียอมรับอักษรตัวอักษรที่กำหนดเองที่สามารถสร้าง ID ได้ แค่การสับเปลี่ยนตัวอักษรเริ่มต้นที่ให้มา

    โปรดทราบว่าด้วยความพยายามเพียงพอ ใครบางคนอาจถอดรหัสตัวอักษรที่คุณสับเปลี่ยนได้ ดังนั้นนี่ไม่ใช่เทคนิคที่จะซ่อนข้อมูลที่ละเอียดอ่อน

  • ฉันจะสลับอักษรตัวอักษรเริ่มต้นได้อย่างไร?

    ตัวอักษรเริ่มต้นสามารถพบได้ ที่นี่

    คุณสามารถใช้เครื่องมือการสับเปลี่ยนสตริงออนไลน์ใดๆหรือ playground ของเรา

  • การใช้อักษรที่สั้นหรือยาวดีกว่า?

    ขึ้นอยู่กับกรณีการใช้งานของคุณ อักษรตัวอักษรที่สั้นจะทำให้ ID ยาวขึ้น และอักษรตัวอักษรที่ยาวจะทำให้ ID สั้นลง คุณสามารถใช้ playground เพื่อทดสอบว่า ID ของคุณอาจจะมีลักษณะอย่างไร

  • อักษรของฉันสามารถประกอบไปด้วยตัวเลขเท่านั้นหรือไม่?

    ใช่ โปรดทราบว่า ID ที่สร้างขึ้นยังคงเป็นสตริงและอาจเริ่มต้นด้วยศูนย์

  • ฉันสามารถใช้ emoji เป็นอักษรได้หรือไม่?

    ไม่ Sqids ไม่รองรับอักขระหลายไบต์สำหรับตัวอักษร ซึ่งรวมถึง emoji และอักขระอื่นๆมากมาย

  • ทำไมต้องแจกแจง ID?

    ไลบรารีสามารถเพิ่ม ID ด้วยตัวอักษรขยะเพื่อทำให้ดูยาวขึ้น สิ่งนี้เป็นประโยชน์โดยที่มันจะไม่ชัดเจนว่าคุณกำลังเข้ารหัสจำนวนเล็กเช่น 1 หรือจำนวนใหญ่เช่น 1000000

    การถอดรหัสไม่ได้รับผลกระทบ

  • ฉันสามารถทำให้ ID ที่สร้างมีความยาวได้มั้ย?

    ใช่ ไลบรารีรับพารามิเตอร์ความยาวขั้นต่ำซึ่งสรรพคุณให้ ID จะมีความยาวอย่างน้อย

    โปรดทราบว่าไม่มีการรับประกันความยาวของ ID ของคุณ - แค่ว่ามันจะไม่สั้นกว่าความยาวที่คุณระบุ

  • ฉันสามารถทำให้ ID ที่สร้างมีความยาวแบบที่กำหนดได้หรือไม่?

    จนถึงจุดหนึ่ง

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

  • ทำไมต้องใช้รายการบล็อก?

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

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

  • รายการบล็อกทำงานอย่างไร?

    การตรวจสอบคำในบล็อกลิสต์ไม่สนใจตัวพิมพ์ใหญ่หรือตัวพิมพ์เล็ก

    คำที่สั้นกว่า 3 ตัวอักษรจะไม่ถูกบล็อก คำที่มีความยาว 3 ตัวอักษรจะต้องตรงกับ ID อย่างแม่นยำ และคำที่มีความยาว 4 ตัวอักษรหรือมากกว่าจะทำให้มีการตรงกันถ้าเป็นสตริงย่อยของ ID

    หากคำในบล็อกลิสต์มีตัวเลข (leetspeak) จะทำให้เกิดการตรงกันเฉพาะเมื่ออยู่ที่จุดเริ่มต้นหรือที่สุดของ ID

  • คำใดบ้างที่อยู่ในรายการบล็อกเริ่มต้น?

    บล็อกลิสต์เริ่มต้นประกอบด้วยคำหยาบและคำที่ไม่เหมาะสมที่สุดจากหลายภาษา คุณสามารถดูรายการทั้งหมด ที่นี่

  • เมื่อ ID ทั้งหมดถูกบล็อกไปแล้วจะเกิดอะไรขึ้น?

    เมื่อ ID ที่สร้างขึ้นตรงกับคำในบล็อกลิสต์ ไลบรารีจะพยายามทำการสร้างใหม่

    หากทุกครั้งที่พยายามทำการสร้างใหม่ ID ล้มเหลว ฟังก์ชันการเข้ารหัสจะล้มเหลวและส่งข้อผิดพลาดกลับ การจัดการข้อผิดพลาดนั้นอยู่ในความรับผิดชอบของผู้ใช้

    วิธีที่ดีที่สุดในการลดจำนวนครั้งที่ทำการสร้างใหม่คือ การมีอักษรที่ยาวกว่า ไม่ตั้งค่าความยาวขั้นต่ำ และการให้บล็อกลิสต์ที่เล็กกว่า การให้บล็อกลิสต์ว่างเปล่าจะปิดใช้งานคุณลักษณะนี้อย่างสมบูรณ์

  • วิธีการตรวจสอบว่า ID ถูกต้องหรือไม่?

    การถอดรหัส ID จะทำให้มีผลลัพธ์ตัวเลขบางประเภท แต่นั้นไม่ได้หมายความว่า ID เป็นแบบกฎหมาย หากต้องการตรวจสอบว่า ID เป็นที่ถูกต้อง คุณสามารถทำการเข้ารหัสตัวเลขที่ถอดรหัสและตรวจสอบว่า ID ตรงกันหรือไม่

    เหตุผลที่ไม่ทำการนี้อัตโนมัติคือถ้าบล็อกลิสต์เริ่มต้นเปลี่ยนไปในอนาคตเราไม่ต้องการที่จะทำให้ ID ที่ถูกสร้างไว้ในอดีตเป็นโมฆะโดยอัตโนมัติและอาจตรงกันกับคำในบล็อกลิสต์เริ่มต้นใหม่

  • เมื่อรายการบล็อกเริ่มต้นถูกอัปเดตเสร็จแล้วจะเกิดอะไรขึ้น?

    เราจะอัปเดต CHANGELOG เมื่อและหากบล็อกลิสต์เริ่มต้นมีการเปลี่ยนแปลง

    คุณต้องคำนึงถึงสถานการณ์ที่คำใหม่อาจถูกนำเข้าไปในบล็อกลิสต์เริ่มต้น ในกรณีนี้การทำการเข้ารหัสตัวเลขอาจทำให้ได้ ID ที่แตกต่างกัน

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

  • การเข้ารหัสตัวเลขที่แตกต่างกันสามารถสร้าง ID ที่เหมือนกันได้หรือไม่?

    ไม่ การเข้ารหัสตัวเลขที่แตกต่างกันจะสร้าง ID ที่ไม่ซ้ำกัน

    อย่างไรก็ตาม เนื่องจากการออกแบบของอัลกอริทึมการถอดรหัส ID สุ่มอาจสร้างตัวเลขเดียวกันได้บางครั้ง วิธีที่ดีที่สุดในการตรวจสอบว่า ID เป็นแบบกฎหมายคือที่จะทำการเข้ารหัสตัวเลขที่ถอดรหัสและตรวจสอบว่า ID ตรงกันหรือไม่

  • Hashids คืออะไร?

    Hashids เป็นรุ่นแรกของไลบรารีนี้ที่ปรากฏในปี 2013 นอกจากนี้ยังสร้าง ID สั้นๆ แต่ใช้วิธีที่ไม่ใช่เดียวกับนี้เล็กน้อย

  • ทำไม Hashids ถูกอัปเกรดเป็น Sqids?

    Hashids จัดการกับสิ่งที่ไม่ซ้ำกันอย่างไม่เหมือนกัน

    มันไม่รองรับบล็อกลิสต์ที่กำหนดเองแต่ใช้คำหยาบที่มักจะพบบ่อยในภาษาอังกฤษ นอกจากนี้ยังใช้พารามิเตอร์ salt เพื่อการสับเบิลอักษรซึ่งทำให้เกิดความสับสนเล็กน้อยเพราะไลบรารีนี้ไม่มีความเกี่ยวข้องกับการเข้ารหัส อีกทั้งยังใช้ตัวอักษรที่สงวนไว้มากมายทำให้ได้ IDs ที่ยาวขึ้น

    ด้วยเหตุผลนี้เราตัดสินใจที่จะอัปเกรดและเปลี่ยนชื่อ เราได้ทำการปรับปรุงอัลกอริทึมให้เรียบง่ายลง เพิ่มคุณสมบัติบางอย่างและเก็บรวบรวมรหัสทั้งหมดไว้ภายใต้ ที่เดียวกันนี้

  • ทำไมพารามิเตอร์ salt ถูกนำออก?

    พารามิเตอร์ salt ถูกใช้สำหรับการสับเบิลอักษร และไม่เคยมีความหมายที่เกี่ยวข้องกับความปลอดภัย ทั้ง Hashids และ Sqids ทำงานอย่างเดียวกันกับการแปลงเลขฐานสิบเข้าเลขฐานสิบหก แต่มีการปรับปรุงบางอย่าง ไม่มีการเข้ารหัสใดๆ เพื่อหลีกเลี่ยงความสับสน พารามิเตอร์นี้ได้ถูกลบออกโดยสมบูรณ์

  • Hashids เข้ากันได้กับ Sqids หรือไม่?

    ไม่ Sqids ขยายความสามารถของ Hashids และมีวัตถุประสงค์และความต้องการในการออกแบบที่แตกต่างกัน ดังนั้น IDs ที่สร้างขึ้นไม่สามารถที่จะใช้งานร่วมกับ Hashids ได้

  • ฉันจะอัปเกรดจาก Hashids เป็น Sqids ได้อย่างปลอดภัยอย่างไร?

    เนื่องจากไม่มีความเข้ากันได้ระหว่าง Hashids และ Sqids การแทนที่ Hashids ด้วย Sqids เป็นเรื่องที่เป็นไปไม่ได้

    อย่างไรก็ตามคุณสามารถรวมการใช้งานร่วมกันโดยการแยกแยะว่า ID ใดเป็นของไลบรารีไหน

    วิธีหนึ่งในการทำเช่นนั้นคือด้วยความยาวของ ID - หากคุณกำลังเปลี่ยนไปใช้ Sqids คุณสามารถให้ความยาวขั้นต่ำสูงกว่าได้ อีกวิธีหนึ่งคือการเพิ่มตัวอักษรที่กำหนดเองไปยัง ID ที่สร้างขึ้นใหม่เอง

    สุดท้ายนี้คุณยังสามารถพยายามที่จะถอดรหัส ID ด้วย Hashids เพื่อดูว่ามันเป็น ID ที่ถูกต้องหรือไม่ หากไม่ถูกต้อง - ถอดรหัสและเข้ารหัสใหม่ด้วย Sqids เพื่อดูว่ามันทำงานหรือไม่

  • ฉันจะหาไฟล์ต้นฉบับของ Hashids ได้ที่ไหน?

    การสร้างภาษาแต่ละภาษาบนเว็บไซต์นี้ลิงก์ไปยังที่เก็บรวบรวมของ Hashids ด้วยถ้ามีอยู่

  • ฉันจะช่วยเหลือได้อย่างไร?

    หากคุณต้องการสนับสนุนโปรเจคเราขอแสดงความนับถือในการเพิ่มดาวให้กับเราบน Github เพื่อให้มีความมองเห็นมากขึ้น

    หากคุณเป็นนักพัฒนาและไม่พบการประมวลแหล่งข้อมูล Sqids สำหรับภาษาเฉพาะใดๆ โปรดช่วยเราในการแปลงไลบรารี และเช่นเดียวกันสำหรับภาษาที่ไม่ได้รับการระบุ

    หากคุณพบข้อบกพร่องในข้อกำหนดหรือทั้งหมดในการประมวล โปรดสร้างปัญหาหรือคำขอดึงด้วยการแนะนำการแก้ไขที่เหมาะสมในเกณฑ์ในที่เก็บรวบรวมข้อมูลที่เหมาะสม

    หากคุณพูดหลายภาษาเราต้องการความช่วยเหลือจากคุณในการ ปรับปรุงบล็อกลิสต์ และ ปรับการแปลเว็บไซต์ หากคุณพบปัญหาใดๆ

    สุดท้ายหากคุณมีประสบการณ์บางอย่างกับ Hashids/Sqids โปรดช่วยเสริมแรงชุมชนของเราด้วยการตอบคำถามของใครสักคน

  • วิธีการโปรต Sqids ไปยังภาษาอื่น?

    หากคุณต้องการที่จะพอร์ต Sqids ไปยังหนึ่งในภาษาต่อไปนี้ (หรือภาษาใหม่ที่ยังไม่ได้รับการระบุที่นี่):

    ActionScript , D , Elm , Haxe , Io , PostgreSQL , Raku , Smalltalk , T-SQL , Tcl , VBA

    โคลนเก็บรวบรวมอย่างเป็นทางการไปยังบัญชี Github ของคุณเองและปรับใช้ ข้อกำหนดการใช้งาน พร้อมกับการทดสอบทั้งหมด คุณสามารถใช้ READMEs ที่มีอยู่แล้วได้ (ตัวอย่าง )

    เมื่อไลบรารีพร้อมใช้งาน สร้างคำขอดึงด้วยการถอดรหัสเสร็จเรียบร้อยแล้วเราจะอัปเดตเว็บไซต์

    หากเก็บรวบรวมไม่มีผู้ดูแลแล้วเรายินดีที่จะเชิญคุณมาดูแลเก็บรวบรวมและเป็นผู้ดูแลที่เป็นทางการ

ผู้สนับสนุน