ตัวเข้ารหัสและถอดรหัส Base32
Base32 แสดงข้อมูลไบนารีด้วยอักขระ 32 ตัว ได้แก่ ตัวเลข 2-7 และตัวพิมพ์ใหญ่ 26 ตัว โดยไม่มี 0/O หรือ 1/I เพื่อเลี่ยงการอ่านผิด จึงเหมาะกับสิ่งที่มนุษย์ต้องพิมพ์หรืออ่านออกเสียง เช่น ซีเคร็ต TOTP สำหรับยืนยันตัวตนสองชั้น, รหัสบัตรกำนัล และตัวระบุที่ไม่แยกตัวพิมพ์ใหญ่เล็ก เครื่องมือนี้เข้ารหัสข้อความเป็น Base32 และถอดรหัสกลับ ตามมาตรฐาน RFC 4648 พร้อมแพดดิง = แบบมาตรฐาน
วิธีเข้ารหัสหรือถอดรหัส Base32
-
1
วางข้อความที่จะแปลง
อินพุตจะถูกมองเป็นไบต์ และข้อความจะตีความเป็น UTF-8 เป็นค่าเริ่มต้น
-
2
เลือกทิศทาง
เข้ารหัสเพื่อเปลี่ยนไบต์ดิบเป็นสตริง Base32 หรือถอดรหัสเพื่อกู้ไบต์กลับมา
-
3
สังเกตพฤติกรรมของแพดดิง
RFC 4648 เติมแพดดิง `=` ให้ผลลัพธ์ที่เข้ารหัสจนความยาวเป็นจำนวนเท่าของ 8 ตัวถอดรหัสรับอินพุตทั้งแบบมีและไม่มีแพดดิง
-
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):
- แบ่งเป็นกลุ่มละ 5 บิต:
01100 11001 10111 10110 1111(กลุ่มสุดท้ายเติมแพดดิง) - จับคู่กับตารางอักขระ:
MZXW6 - เติมแพดดิง
===ให้ครบ 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 ก่อนถอดรหัส
ใช่ ข้อความจะถูกส่งไปยังเซิร์ฟเวอร์ของหน้าเพื่อให้คำนวณผลลัพธ์ และในมุมมองแบบหลายขั้นตอน ข้อความเดียวกันจะถูกบรรจุในลิงก์ของขั้นตอนด้วย โดยไม่มีการจัดเก็บหรือบันทึก
เครื่องมือที่เกี่ยวข้อง
ตัวเข้ารหัสไฟล์ Base64
เข้ารหัสไฟล์ใดก็ได้ (PDF, ZIP, รูปภาพ, ไฟล์ปฏิบัติการ) เป็นข้อความ Base64 เพื่อฝังใน JSON, อีเมล, YAML หรือ data URI ทำงานในเครื่องของคุณ ไม่มีการอัปโหลด
ตัวเข้ารหัสและถอดรหัส Base58
เข้ารหัสข้อความ UTF-8 หรือไบต์เลขฐานสิบหก และถอดรหัส Base58 อย่างปลอดภัยด้วยชุดอักขระ Bitcoin, Ripple หรือ Flickr
เครื่องมือเข้ารหัสซีซาร์
เข้ารหัสและถอดรหัสข้อความด้วยรหัสซีซาร์ เลื่อนได้ตั้งแต่ 1-25 รองรับ ROT13 เป็นกรณีพิเศษ และคงเครื่องหมายวรรคตอนกับตัวพิมพ์ใหญ่-เล็กไว้เหมือนเดิม
ตัวสร้าง bcrypt
สร้าง bcrypt hash จากรหัสผ่าน plaintext ปรับ cost factor ได้ตั้งแต่ 4 ถึง 13 ใช้ร่วมกับ Laravel, Django, Node และ PHP ได้
ตัวเข้ารหัสรหัสลับ A1Z26
เข้ารหัสข้อความด้วยรหัสลับ A1Z26 (A=1, B=2, ... Z=26) หรือถอดรหัสลำดับตัวเลขกลับเป็นตัวอักษร พร้อมปรับตัวคั่นได้
เข้ารหัส / ถอดรหัส AES
เข้ารหัสและถอดรหัสข้อความความเสี่ยงต่ำด้วย AES cipher ของ OpenSSL passphrase จะถูก hash ด้วย SHA-256 และผลลัพธ์ Base64 มี IV รวมกับข้อความเข้ารหัส
เครื่องมือนี้มีให้บริการในภาษาอื่น
- مشفر ومفكك Base32 [AR]
- Encodeur et décodeur Base32 [FR]
- Base32 인코더 및 디코더 [KO]
- Base32-kodare och avkodare [SV]
- Base32 encoder en decoder [NL]
- Base32-Encoder/Decoder [DE]
- Codificador y Decodificador Base32 [ES]
- Koder i dekoder Base32 [PL]
- Encoder dan Decoder Base32 [ID]
- Base32エンコーダー・デコーダー [JA]
- Bộ mã hóa và giải mã Base32 [VI]
- Codificador e Decodificador Base32 [PT]
- Base32 Encoder and Decoder [EN]
- Codificatore e Decodificatore Base32 [IT]
- Кодировщик и декодировщик Base32 [RU]
- Base32 Kodlayıcı ve Çözücü [TR]
- Base32 编码器和解码器 [ZH]