วิธีใช้งาน
- วางสตริง Base64 ลงในช่องอินพุต ระบบเลือก Base64 ไว้ในช่อง “จาก” และเลขฐานสิบหกไว้ในช่อง “เป็น” ให้แล้ว
- อ่านผลลัพธ์เลขฐานสิบหก ซึ่งใช้เลขฐานสิบหกสองหลักแทนแต่ละไบต์
- หากต้องการรูปแบบอื่น ให้เลือกการเข้ารหัสในช่อง “เป็น” เช่น Base58 หรือ Base32 หรือกดปุ่ม “สลับอินพุตและเอาต์พุต” เพื่อแปลงเลขฐานสิบหกกลับเป็น Base64
- คัดลอกผลลัพธ์
สองวิธีในการเขียนไบต์ชุดเดียวกัน
ทั้งเลขฐานสิบหกและ Base64 เป็นวิธีเขียนข้อมูลไบนารีในรูปข้อความ เลขฐานสิบหกใช้อักขระสองตัวต่อหนึ่งไบต์ จึงอ่านและเปรียบเทียบค่าของแต่ละไบต์ได้ง่าย ส่วน Base64 บรรจุ 3 ไบต์ลงในอักขระ 4 ตัว และสั้นกว่าประมาณหนึ่งในสาม การแปลงระหว่างสองรูปแบบนี้เปลี่ยนเพียงวิธีเขียน ไม่ได้เปลี่ยนตัวข้อมูล:
| ค่า | ไบต์ | ความยาวเลขฐานสิบหก | ความยาว Base64 |
|---|---|---|---|
| แฮช MD5 | 16 | 32 | 24 |
| แฮช SHA-1 | 20 | 40 | 28 |
| แฮช SHA-256 และคีย์สาธารณะ Ed25519 | 32 | 64 | 44 |
| แฮช SHA-384 | 48 | 96 | 64 |
| แฮช SHA-512 และลายเซ็น Ed25519 | 64 | 128 | 88 |
โปรแกรมแก้ไขเลขฐานสิบหก (hex editor) เครื่องมือวิเคราะห์แพ็กเก็ต และดีบักเกอร์ก็แสดงข้อมูลเป็นเลขฐานสิบหกเช่นกัน การแปลง Base64 เป็นเลขฐานสิบหกจึงช่วยให้คุณเทียบข้อมูลกับสิ่งที่เครื่องมือเหล่านั้นแสดงได้ตรงกัน
เมื่อใดที่ต้องแปลง Base64 เป็นเลขฐานสิบหก
- เปรียบเทียบค่าแฮช เครื่องมืออย่าง
sha256sumแสดงผลเป็นเลขฐานสิบหก ขณะที่แอตทริบิวต์ Subresource Integrity ค่าแฮชใน Content Security Policy และส่วนหัวเช็กซัมอย่างContent-MD5ใช้ Base64 ต้องแปลงฝั่งใดฝั่งหนึ่งก่อนจึงจะเปรียบเทียบกันได้ - ลายนิ้วมือ SSH คำสั่ง
ssh-keygen -lแสดงลายนิ้วมือแบบSHA256:เป็น Base64 ที่ไม่มีแพดดิง ขณะที่ระเบียน DNS แบบ SSHFP เก็บค่าไดเจสต์ SHA-256 เดียวกันเป็นเลขฐานสิบหก ให้วางส่วนที่อยู่หลังSHA256:เพื่อดูค่าในรูปเลขฐานสิบหก - คีย์ IV และลายเซ็น เมื่อดีบักโค้ดด้านการเข้ารหัสลับ (cryptography) การดูไบต์เป็นเลขฐานสิบหกช่วยให้ตรวจสอบความยาว เปรียบเทียบค่า และสังเกตเห็นไบต์ที่ขาดหายหรือเกินมาได้ง่าย
อินพุตที่ตัวแปลงรองรับ
ตัวแปลงจะละเว้นช่องว่างและการขึ้นบรรทัดใหม่ในอินพุต Base64 ยอมรับอักขระแบบปลอดภัยสำหรับ URL อย่าง - และ _ และจะมีแพดดิง = หรือไม่ก็ได้ คุณจึงวางค่าที่คัดลอกมาจาก JSON, JWT หรือเอาต์พุตของเทอร์มินัลได้ทันที การแปลงทำกับไบต์ที่ถอดรหัสแล้ว ผลลัพธ์จึงเป็นเลขฐานสิบหกของตัวข้อมูล ไม่ใช่ของอักขระ Base64 หากต้องการดูรหัสเลขฐานสิบหกของข้อความ ให้ใช้ Base16 แทน
# Shell
printf '%s' "$B64" | base64 --decode | xxd -p
# Python
base64.b64decode(s).hex()
// Node.js
Buffer.from(s, 'base64').toString('hex')
คำถามที่พบบ่อย
เครื่องมือนี้แปลงตัวข้อความ Base64 หรือแปลงไบต์ที่ข้อความนั้นแทนอยู่
ทำไมเอาต์พุตเลขฐานสิบหกจึงยาวกว่าอินพุต Base64
เลขฐานสิบหกใช้ 2 อักขระต่อไบต์ ขณะที่ Base64 ใช้ประมาณ 1.33 อักขระ ค่าไดเจสต์ SHA-256 ขนาด 32 ไบต์จึงยาว 44 อักขระเมื่อเขียนเป็น Base64 และ 64 อักขระเมื่อเขียนเป็นเลขฐานสิบหก
จะได้เลขฐานสิบหกแบบตัวพิมพ์ใหญ่หรือแบบคั่นด้วยทวิภาคได้อย่างไร
แปลงค่า Base64URL จาก JWT หรือ JSON Web Key ได้หรือไม่
ได้ ตัวแปลงจัดการอักขระแบบปลอดภัยสำหรับ URL และแพดดิงที่ขาดหายไปให้โดยอัตโนมัติ คุณจึงวางพารามิเตอร์ของคีย์และลายเซ็นได้โดยไม่ต้องแก้ไข