วิธีใช้งาน
- เลือก “เข้ารหัส” เพื่อแปลงข้อความเป็น z-base-32 หรือ “ถอดรหัส” เพื่อแปลง z-base-32 กลับเป็นข้อความ
- คง “รูปแบบ” ไว้ที่ z-base-32 และตรวจสอบว่าปิด “แพดดิง” อยู่ เพราะรูปแบบนี้ไม่ใช้แพดดิง
- พิมพ์หรือวางอินพุต หรือเปิดไฟล์ ผลลัพธ์จะอัปเดตทันทีขณะที่คุณพิมพ์
- คัดลอกผลลัพธ์หรือดาวน์โหลดเป็นไฟล์
z-base-32 คืออะไร
z-base-32 คือการเข้ารหัส Base32 ที่ Zooko Wilcox-O'Hearn ออกแบบให้คนอ่าน เขียน และพูดได้ง่ายขึ้น กลไกเหมือนกับ Base32 ตาม RFC 4648 คืออักขระแต่ละตัวเก็บข้อมูล 5 บิต และ 5 ไบต์กลายเป็น 8 อักขระ สิ่งที่ทำให้แตกต่างคือชุดตัวอักษร
ybndrfg8ejkmcpqxot1uwisza345h769
ชุดตัวอักษรนี้เป็นตัวพิมพ์เล็กทั้งหมด และตัด 0, 2, l และ v ออก เพราะสับสนได้ง่ายกับ o, z, 1 และ u อักขระยังถูกจัดเรียงลำดับใหม่ เอาต์พุต z-base-32 จึงดูไม่เหมือน Base32 มาตรฐานของไบต์ชุดเดียวกันเลย และตัวถอดรหัสตาม RFC 4648 ก็อ่านไม่ได้
ไม่มีแพดดิง เพราะความยาวของข้อมูลคำนวณได้จากความยาวของสตริง ข้อกำหนดยังเข้ารหัสสตริงบิตที่ไม่ครบเป็นไบต์ได้หากทั้งสองฝ่ายตกลงความยาวกันไว้ แต่เครื่องมือนี้ทำงานกับไบต์ที่ครบถ้วนเสมอ
z-base-32 ใช้ที่ไหนบ้าง
- OpenPGP Web Key Directory (WKD) ในการเผยแพร่คีย์ที่ URL แบบ well-known ส่วน local part ของที่อยู่อีเมลจะถูกแปลงเป็นตัวพิมพ์เล็กและแฮชด้วย SHA-1 จากนั้นแฮชขนาด 20 ไบต์จะถูกเข้ารหัสแบบ z-base-32 เป็นชื่อไฟล์ยาว 32 อักขระ
- ZRTP สตริงยืนยันตัวตนแบบสั้น (short authentication string) ที่ผู้สนทนาทั้งสองฝ่ายอ่านออกเสียงเพื่อตรวจจับการโจมตีแบบ man-in-the-middle สามารถแสดงเป็น Base32 ด้วยชุดตัวอักษร z-base-32 ได้ (RFC 6189)
- Lightning Network ซอฟต์แวร์โหนดอย่าง lnd และ Core Lightning ส่งคืนข้อความที่ลงลายเซ็นแล้วเป็นสตริง z-base-32
สำหรับรูปแบบอื่นที่เป็นมิตรกับคน ให้เปรียบเทียบ Crockford Base32 ซึ่งคงลำดับตัวเลขไว้และยอมรับการพิมพ์ผิด กับ Base58 ซึ่งสั้นกว่าแต่แยกตัวพิมพ์เล็ก-ใหญ่
ข้อกำหนด
| ชุดตัวอักษร | ybndrfg8ejkmcpqxot1uwisza345h769 |
|---|---|
| ขนาดเอาต์พุต | 8 อักขระต่อ 5 ไบต์ (160%) |
| แพดดิง | ไม่มี |
| มาตรฐาน | z-base-32 (Zooko Wilcox-O'Hearn) |
| แยกตัวพิมพ์เล็ก-ใหญ่ | ไม่ใช่ |
ตัวอย่าง
| อินพุต (UTF-8) | เอาต์พุต |
|---|---|
Hello, World! | jb1sa5dxfoofq551pt1nn |
Base64.is | ejozg3jsgozg1ha |
你好 | h164b3pfzw |
คำถามที่พบบ่อย
z-base-32 เหมือนกับ Base32 หรือไม่
ไม่เหมือน z-base-32 ใช้การแบ่งกลุ่มละ 5 บิตแบบเดียวกับ Base32 ตาม RFC 4648 แต่ใช้ชุดตัวอักษรที่ต่างออกไปและจัดเรียงใหม่ ทั้งยังไม่มีแพดดิง สตริง z-base-32 ต้องถอดรหัสด้วยตัวถอดรหัส z-base-32
z-base-32 แยกตัวพิมพ์เล็ก-ใหญ่หรือไม่
ชุดตัวอักษรเป็นตัวพิมพ์เล็ก และเอาต์พุตเป็นตัวพิมพ์เล็กเสมอ ตัวถอดรหัสนี้รับอินพุตตัวพิมพ์ใหญ่ได้ด้วย โดยจะแปลงเป็นตัวพิมพ์เล็กก่อนถอดรหัส
ถ้าสตริงของฉันลงท้ายด้วยเครื่องหมาย = จะเป็นอย่างไร
z-base-32 ไม่ใช้แพดดิง แต่หากสตริงลงท้ายด้วยเครื่องหมาย = ตัวถอดรหัสจะละเว้นเครื่องหมายเหล่านั้นไป
จะหาแฮช WKD ได้อย่างไร
--with-wkd-hash