ตัวเข้ารหัสและถอดรหัส Base32

Base32 แสดงข้อมูลไบนารีด้วยอักขระ 32 ตัว ได้แก่ ตัวเลข 2-7 และตัวพิมพ์ใหญ่ 26 ตัว โดยไม่มี 0/O หรือ 1/I เพื่อเลี่ยงการอ่านผิด จึงเหมาะกับสิ่งที่มนุษย์ต้องพิมพ์หรืออ่านออกเสียง เช่น ซีเคร็ต TOTP สำหรับยืนยันตัวตนสองชั้น, รหัสบัตรกำนัล และตัวระบุที่ไม่แยกตัวพิมพ์ใหญ่เล็ก เครื่องมือนี้เข้ารหัสข้อความเป็น Base32 และถอดรหัสกลับ ตามมาตรฐาน RFC 4648 พร้อมแพดดิง = แบบมาตรฐาน

วิธีเข้ารหัสหรือถอดรหัส Base32

  1. 1

    วางข้อความที่จะแปลง

    อินพุตจะถูกมองเป็นไบต์ และข้อความจะตีความเป็น UTF-8 เป็นค่าเริ่มต้น

  2. 2

    เลือกทิศทาง

    เข้ารหัสเพื่อเปลี่ยนไบต์ดิบเป็นสตริง Base32 หรือถอดรหัสเพื่อกู้ไบต์กลับมา

  3. 3

    สังเกตพฤติกรรมของแพดดิง

    RFC 4648 เติมแพดดิง `=` ให้ผลลัพธ์ที่เข้ารหัสจนความยาวเป็นจำนวนเท่าของ 8 ตัวถอดรหัสรับอินพุตทั้งแบบมีและไม่มีแพดดิง

  4. 4

    คัดลอกผลลัพธ์

    ผลลัพธ์ที่เข้ารหัสเป็นตัวพิมพ์ใหญ่ เติม `=` จนครบจำนวนเท่าของ 8

ตารางอักขระ RFC 4648

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 2 3 4 5 6 7

ไม่มี 0, ไม่มี 1, ไม่มี 8, ไม่มี 9 อักขระแต่ละตัวเข้ารหัส 5 บิต (2^5 = 32) ดังนั้นอินพุต 5 ไบต์จะกลายเป็นเอาต์พุต 8 อักขระ

ตัวอย่างประกอบ

การเข้ารหัสสตริง ASCII foo (ไบต์ 0x66 0x6F 0x6F = 01100110 01101111 01101111):

  1. แบ่งเป็นกลุ่มละ 5 บิต: 01100 11001 10111 10110 1111 (กลุ่มสุดท้ายเติมแพดดิง)
  2. จับคู่กับตารางอักขระ: M Z X W 6
  3. เติมแพดดิง === ให้ครบ 8 อักขระ: MZXW6===

แพดดิงและกฎเรื่องความยาว

ไบต์อินพุต ความยาวเอาต์พุต แพดดิง
1 8 ======
2 8 ====
3 8 ===
4 8 =
5 8 (ไม่มี)

รูปแบบอื่นนอกเหนือจาก RFC 4648

  • Base32 Hex, ตารางอักขระ 0-9A-V ใช้โดย NSEC3 ใน DNSSEC
  • Crockford’s Base32, ตารางอักขระที่ปรับให้เหมาะกับการพิมพ์ของมนุษย์ แทนที่ O→0, I/L→1 ตอนถอดรหัส ใช้โดย ULID และคีย์ลิขสิทธิ์บางแบบ

เครื่องมือนี้รองรับเฉพาะ RFC 4648 มาตรฐานเท่านั้น หากต้องการรูปแบบข้างต้น ใช้ตัวแปลงเฉพาะ

ซีเคร็ต TOTP

รูปแบบ URI otpauth:// ที่ Google Authenticator และแอป 2FA สมัยใหม่ทุกตัวใช้ จะเข้ารหัสซีเคร็ตที่แชร์กันเป็น Base32 แบบไม่มีแพดดิง เมื่อคุณสแกน QR สำหรับ “My Service” พารามิเตอร์ secret= คือสตริง Base32 ใช้เครื่องมือนี้ถอดรหัสเพื่อตรวจสอบไบต์ดิบที่ HMAC ใช้

คำถามที่พบบ่อย

Base32 ไม่แยกตัวพิมพ์ใหญ่เล็กและเลี่ยงอักขระที่ดูคล้ายกัน ซึ่งสำคัญกับสิ่งที่มนุษย์อ่านหรือพิมพ์ Base64 แน่นกว่า (ใช้อักขระน้อยกว่าสำหรับไบต์เท่ากัน) แต่ต้องแยก I จาก l และ 0 จาก O ซึ่งมักพลาดในลายมือและตัวพิมพ์เล็ก

RFC 4648 กำหนดให้ต้องมีแพดดิงในการเข้ารหัส เครื่องมือนี้จะเติม = ต่อท้ายผลลัพธ์ที่เข้ารหัสเสมอจนความยาวเป็นจำนวนเท่าของ 8 ผู้ใช้งานจริงส่วนใหญ่ (แอป TOTP, ไลบรารี ULID, ตัวแก้ปัญหา DNSSEC) รับอินพุตที่ไม่มีแพดดิงได้ และตัวถอดรหัสที่นี่ก็รับทั้งแบบมีและไม่มีแพดดิง

Base32 มาตรฐานไม่มี 0, 1, 8 หรือ 9 และเป็นตัวพิมพ์ใหญ่เสมอ ตัวถอดรหัสจะละเว้นอักขระนอกตาราง RFC 4648 อย่างเงียบ ๆ อินพุตที่มีตัวพิมพ์เล็กหรืออักขระแปลก ๆ จึงถูกถอดรหัสเป็นไบต์ที่ผิดพลาด ให้ปรับอินพุตเป็นตัวพิมพ์ใหญ่ A-Z และตัวเลข 2-7 ก่อนถอดรหัส

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

เครื่องมือที่เกี่ยวข้อง

รหัสแปลงตัวเลขเป็นตัวอักษร

แปลงตัวเลขเป็นตัวอักษรและย้อนกลับด้วยรหัส A=1, B=2 (A1Z26) สำหรับปริศนา คำทาย และเบาะแสในห้องเอสเคปรูม

เครื่องสร้างค่าแฮช MD5

คำนวณค่า checksum แบบ MD5 ของข้อความและไฟล์เพื่อยืนยันความสมบูรณ์ โดยผลลัพธ์จะตรงกับที่ได้จากฟังก์ชัน md5sum และ openssl dgst -md5

เครื่องสร้างพาสเฟรส (Passphrase)

สร้างพาสเฟรสที่จำง่ายจากคำทั่วไปแบบสุ่ม ปรับจำนวนคำ ตัวคั่น การขึ้นต้นด้วยตัวพิมพ์ใหญ่ และตัวเลขต่อท้ายที่เลือกได้

ตัวเข้ารหัสรหัสลับ A1Z26

เข้ารหัสข้อความด้วยรหัสลับ A1Z26 (A=1, B=2, ... Z=26) หรือถอดรหัสลำดับตัวเลขกลับเป็นตัวอักษร พร้อมปรับตัวคั่นได้

เครื่องมือเข้ารหัส Polybius

เข้ารหัสอักษรละตินเป็นพิกัด Polybius หรือถอดรหัสคู่ตัวเลขที่คั่นด้วยช่องว่าง โดยใช้ตาราง 5×5 แบบคงที่ที่รวม I/J

เครื่องตรวจสอบความแข็งแรงของรหัสผ่าน

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

เครื่องมือนี้มีให้บริการในภาษาอื่น