ToolDeck

แปลง Base64 เป็น Hex

แปลงระหว่าง Base64 และเลขฐานสิบหก

Base64

Hex

ประมวลผลในเครื่อง · ปลอดภัยในการวางข้อมูลลับ
ผลลัพธ์จะปรากฏที่นี่…
Base64 → Hex

การแปลง Base64 เป็น Hex คืออะไร?

การแปลง Base64 เป็น hex คือการเปลี่ยนรูปแบบข้อมูลระหว่างสองวิธีการเข้ารหัสไบนารีเป็นข้อความที่ใช้งานทั่วไป Base64 แทนข้อมูลไบนารีด้วยตัวอักษร ASCII 64 ตัว (A-Z, a-z, 0-9, +, /) โดยเข้ารหัสทุก 3 ไบต์เป็น 4 ตัวอักษร ส่วนเลขฐานสิบหกแทนแต่ละไบต์ด้วยตัวอักษร 2 ตัวจากอักษร 16 สัญลักษณ์ (0-9, a-f) การแปลงระหว่างรูปแบบเหล่านี้เป็นกระบวนการสองขั้นตอน: ถอดรหัสสตริง Base64 เป็นไบต์ดิบ จากนั้นเข้ารหัสไบต์เหล่านั้นในรูปแบบเป้าหมาย

สัญกรณ์เลขฐานสิบหกเป็นรูปแบบมาตรฐานสำหรับข้อมูลไบนารีในการเขียนโปรแกรมระดับต่ำ วิทยาการเข้ารหัส และโปรโตคอลเครือข่าย แต่ละตัวอักษร hex ตรงกับ nibble 4 บิต ทำให้อ่านค่าไบต์แต่ละตัวได้ตรงไปตรงมา ตัวอย่างเช่น hash SHA-256 มักแสดงเป็นสตริง hex 64 ตัวอักษรเสมอ ในทางตรงข้าม Base64 ได้รับการปรับให้กะทัดรัด — hash เดียวกันใช้เพียง 44 ตัวอักษรใน Base64 — และเป็นการเข้ารหัสมาตรฐานสำหรับไฟล์แนบอีเมล (MIME) data URI และ API payload

ทั้งสองการเข้ารหัสถูกกำหนดใน RFC 4648 การแปลงระหว่างทั้งสองไม่สูญเสียข้อมูล: ไม่มีข้อมูลที่เพิ่มหรือลบออก มีเพียงการแสดงผลเป็นข้อความเท่านั้นที่เปลี่ยน ทำให้การแปลง Base64 เป็น hex เป็นการดำเนินการปกติเมื่อดีบัก payload ที่เข้ารหัส ตรวจสอบลายนิ้วมือใบรับรอง หรือยืนยัน hash output ในระบบต่างๆ ที่ใช้รูปแบบการแสดงผลต่างกัน

ทำไมต้องใช้เครื่องมือแปลง Base64 เป็น Hex นี้?

เครื่องมือนี้แปลงระหว่าง Base64 และเลขฐานสิบหกโดยตรงในเบราว์เซอร์ของคุณ ไม่มีข้อมูลออกจากเครื่องของคุณ และการแปลงเกิดขึ้นแบบเรียลไทม์ขณะที่คุณพิมพ์

แปลงได้ทันที
วาง Base64 หรือ hex แล้วเห็นผลลัพธ์ทันที — ไม่ต้องส่งข้อมูลไปเซิร์ฟเวอร์ โหมดสองทิศทางช่วยให้สลับทิศทางได้ด้วยคลิกเดียว
🔒
ประมวลผลโดยคำนึงถึงความเป็นส่วนตัว
การแปลงทั้งหมดทำงานในเบราว์เซอร์ของคุณผ่าน JavaScript คีย์การเข้ารหัส hash และ token ของคุณไม่เคยถูกส่งผ่านเครือข่าย
โหมดสองทิศทาง
สลับระหว่าง Base64 เป็น hex และ hex เป็น Base64 ด้วยปุ่มเดียว เครื่องมือตรวจจับและรองรับทั้ง Base64 มาตรฐานและรูปแบบ URL-safe
📋
ผลลัพธ์สะอาด พร้อมนำไปใช้
ผลลัพธ์เป็น hex ตัวพิมพ์เล็กโดยไม่มีตัวคั่นหรือคำนำหน้า — รูปแบบที่ API, CLI และภาษาโปรแกรมส่วนใหญ่คาดหวัง คัดลอกด้วยคลิกเดียว

กรณีการใช้งานแปลง Base64 เป็น Hex

นักพัฒนา Frontend
แปลง API response ที่เข้ารหัส Base64 เป็น hex เมื่อดีบักโปรโตคอลไบนารี WebSocket frame หรือเนื้อหา ArrayBuffer ใน DevTools console ของเบราว์เซอร์
วิศวกร Backend
แปลง hash digest แบบ Base64 จาก JWT signature หรือ HMAC response เป็น hex เพื่อเปรียบเทียบกับค่าที่จัดเก็บใน OpenSSL หรือฐานข้อมูลที่ใช้รูปแบบ hex
DevOps / SRE
ตรวจสอบลายนิ้วมือใบรับรอง TLS โดยแปลง public key แบบ Base64 จากไฟล์ PEM เป็นรูปแบบลายนิ้วมือ hex ที่แสดงในเบราว์เซอร์และเครื่องมือติดตาม
นักวิเคราะห์ความปลอดภัย
ตรวจสอบคีย์การเข้ารหัสและ initialization vector (IV) ที่ส่งมาเป็น Base64 ใน API traffic — แปลงเป็น hex เพื่อวิเคราะห์ระดับไบต์ใน Wireshark หรือ CyberChef
วิศวกรข้อมูล
แปลงคอลัมน์ไบนารีที่เข้ารหัส Base64 จากฐานข้อมูล (PostgreSQL bytea, MongoDB BinData) เป็น hex สำหรับการเปรียบเทียบ บันทึก หรือสคริปต์การย้ายข้อมูล
นักศึกษา / ผู้เรียนรู้
เข้าใจความสัมพันธ์ระหว่าง Base64 และเลขฐานสิบหกโดยดูว่าไบต์เดียวกันถูกแทนด้วยวิธีใดในแต่ละรูปแบบ เพื่อเสริมความเข้าใจพื้นฐานการเข้ารหัส

การเปรียบเทียบ Base64 กับเลขฐานสิบหก

ทั้ง Base64 และเลขฐานสิบหกแปลงข้อมูลไบนารีเป็นข้อความที่พิมพ์ได้ แต่มีการแลกเปลี่ยนระหว่างความกะทัดรัดและความอ่านง่ายต่างกัน ตารางด้านล่างสรุปความแตกต่างหลัก

คุณสมบัติBase64Hexadecimal
ชุดอักษรA-Z a-z 0-9 + / =0-9 a-f
บิตต่อตัวอักษร64
ขนาดที่เพิ่มขึ้น~33% มากกว่าดิบ100% มากกว่าดิบ
ความอ่านง่ายกะทัดรัดแต่อ่านยากแต่ละไบต์เห็นได้ชัดเป็น 2 ตัวอักษร
การใช้งานหลักอีเมล, data URI, APICrypto hash, MAC address, สี
ข้อกำหนดRFC 4648IEEE 754, RFC 4648 sec 8

ตัวอย่างการแปลง

ตารางด้านล่างแสดงลำดับไบต์เดียวกันในรูปแบบ Base64 และเลขฐานสิบหก สังเกตว่าผลลัพธ์ hex มีความยาวเป็นสองเท่าของจำนวนไบต์เสมอ ขณะที่ความยาว Base64 เท่ากับ ceil(byteCount / 3) * 4

อินพุต (ข้อความ / ไบต์)Base64Hex
HelloSGVsbG8=48656c6c6f
ABQUI=4142
0xFFMHhGRg==30784646
AAE=0001
key=vala2V5PXZhbA==6b65793d76616c
Þ­¾ï (bytes)3q2+7w==deadbeef

การแปลงทำงานอย่างไร

การแปลง Base64 เป็นเลขฐานสิบหกเป็นกระบวนการสองระยะ ระยะแรก สตริง Base64 ถูกถอดรหัสเป็นไบต์ดิบโดยการจับคู่แต่ละตัวอักษรกับค่า 6 บิต เชื่อมบิตเข้าด้วยกัน และแบ่งเป็นไบต์ 8 บิต (ทิ้ง padding) ขั้นตอนนี้ย้อนกลับการเข้ารหัสที่กำหนดใน RFC 4648 Section 4

ระยะที่สอง แต่ละไบต์ถูกแปลงเป็นเลขฐานสิบหกสองหลัก ค่าไบต์ 0-255 ตรงกับ 00-ff ไบต์อย่างเช่น 0x4F (ทศนิยม 79) กลายเป็นตัวอักษรสองตัวคือ '4' และ 'f' สตริง hex สมบูรณ์คือการเชื่อมคู่ตัวอักษรสองตัวทั้งหมดเข้ากัน ทิศทางย้อนกลับ (hex เป็น Base64) ใช้ขั้นตอนเหล่านี้ในลำดับย้อนกลับ: แยกวิเคราะห์คู่ hex เป็นไบต์ จากนั้นเข้ารหัส Base64 ผลลัพธ์

เลขฐานสองแบบ 4 บิตตัวเลข Hex
00000
00011
00102
00113
01004
01015
01106
01117
10008
10019
1010a
1011b
1100c
1101d
1110e
1111f

ตัวอย่างโค้ด

ตัวอย่างโค้ดที่รันได้เหล่านี้แสดงวิธีแปลงระหว่าง Base64 และ hex ใน JavaScript, Python, Go และ command line แต่ละตัวอย่างครอบคลุมทั้งสองทิศทางการแปลง

JavaScript (browser / Node.js)
// Base64 to Hex
function base64ToHex(b64) {
  const raw = atob(b64)
  return Array.from(raw, c =>
    c.charCodeAt(0).toString(16).padStart(2, '0')
  ).join('')
}
base64ToHex('SGVsbG8=') // → "48656c6c6f"

// Hex to Base64
function hexToBase64(hex) {
  const bytes = hex.match(/.{1,2}/g).map(b => parseInt(b, 16))
  return btoa(String.fromCharCode(...bytes))
}
hexToBase64('48656c6c6f') // → "SGVsbG8="

// Node.js Buffer shorthand
Buffer.from('SGVsbG8=', 'base64').toString('hex')   // → "48656c6c6f"
Buffer.from('48656c6c6f', 'hex').toString('base64')  // → "SGVsbG8="
Python
import base64, binascii

# Base64 to Hex
b64_str = 'SGVsbG8='
raw_bytes = base64.b64decode(b64_str)
hex_str = raw_bytes.hex()            # → '48656c6c6f'
# or: binascii.hexlify(raw_bytes).decode()

# Hex to Base64
hex_str = '48656c6c6f'
raw_bytes = bytes.fromhex(hex_str)
b64_str = base64.b64encode(raw_bytes).decode()  # → 'SGVsbG8='

# One-liner for quick conversion
base64.b64encode(bytes.fromhex('deadbeef')).decode()  # → '3q2+7w=='
Go
package main

import (
    "encoding/base64"
    "encoding/hex"
    "fmt"
)

func main() {
    // Base64 to Hex
    raw, _ := base64.StdEncoding.DecodeString("SGVsbG8=")
    hexStr := hex.EncodeToString(raw)
    fmt.Println(hexStr) // → "48656c6c6f"

    // Hex to Base64
    raw2, _ := hex.DecodeString("48656c6c6f")
    b64Str := base64.StdEncoding.EncodeToString(raw2)
    fmt.Println(b64Str) // → "SGVsbG8="
}
CLI (bash)
# Base64 to Hex (using base64 + xxd)
echo -n 'SGVsbG8=' | base64 -d | xxd -p
# → 48656c6c6f

# Hex to Base64
echo -n '48656c6c6f' | xxd -r -p | base64
# → SGVsbG8=

# OpenSSL alternative
echo -n 'SGVsbG8=' | openssl base64 -d | xxd -p
# → 48656c6c6f

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

ความแตกต่างระหว่าง Base64 และเลขฐานสิบหกคืออะไร?
Base64 ใช้ตัวอักษร 64 ตัวและเข้ารหัส 6 บิตต่อตัวอักษร ส่งผลให้ขนาดเพิ่มขึ้นประมาณ 33% เมื่อเทียบกับไบต์ดิบ เลขฐานสิบหกใช้ตัวอักษร 16 ตัวและเข้ารหัส 4 บิตต่อตัวอักษร ส่งผลให้ขนาดเพิ่มขึ้น 100% — เป็นสองเท่าของขนาดเดิม Base64 กะทัดรัดกว่า ส่วน hex อ่านง่ายกว่าสำหรับมนุษย์เพราะแต่ละไบต์ตรงกับสองตัวอักษร
การแปลง Base64 เป็น hex สูญเสียข้อมูลหรือไม่?
ไม่ ทั้ง Base64 และ hex เป็นการเข้ารหัสที่กำหนดแน่นอนและย้อนกลับได้ของไบต์พื้นฐานเดียวกัน การแปลงระหว่างทั้งสองไม่เปลี่ยน บีบอัด หรือเข้ารหัสข้อมูล ลำดับไบต์ดิบเหมือนกันก่อนและหลังการแปลง — มีเพียงการแสดงผลเป็นข้อความเท่านั้นที่เปลี่ยน
ทำไมผลลัพธ์ hex ถึงยาวกว่าอินพุต Base64?
Hex สร้างตัวอักษร 2 ตัวต่อไบต์เสมอ ขณะที่ Base64 สร้างประมาณ 1.33 ตัวอักษรต่อไบต์ ค่า 20 ไบต์คือ 28 ตัวอักษร Base64 แต่ 40 ตัวอักษร hex นี่คือการแลกเปลี่ยนที่หลีกเลี่ยงไม่ได้: hex มีขนาดใหญ่กว่าแต่เห็นขอบเขตไบต์แต่ละตัวได้ชัดเจน
สามารถแปลง Base64url (Base64 แบบ URL-safe) เป็น hex ได้ไหม?
ได้ Base64url แทนที่ + ด้วย - และ / ด้วย _ และละ padding เครื่องมือนี้ทำการปรับ Base64url อัตโนมัติก่อนการแปลง ในโค้ด ให้แทนที่ - ด้วย + และ _ ด้วย / จากนั้นเพิ่ม padding ก่อนถอดรหัส: ไบต์ที่ได้เหมือนกับ Base64 มาตรฐาน
จะแปลง SHA-256 hash จาก Base64 เป็น hex ได้อย่างไร?
วาง hash แบบ Base64 ลงในเครื่องมือนี้เพื่อรับสตริง hex 64 ตัวอักษร ในโค้ด: ถอดรหัสสตริง Base64 เป็นไบต์ (32 ไบต์สำหรับ SHA-256) จากนั้นเข้ารหัส hex ไบต์เหล่านั้น ตัวอย่างใน Python: bytes.fromhex เป็นทิศทางตรงข้าม — base64.b64decode(b64_hash).hex() ให้ค่า hex
จะเกิดอะไรขึ้นถ้าอินพุต Base64 มีช่องว่างหรือบรรทัดใหม่?
ตัวถอดรหัส Base64 ส่วนใหญ่ รวมถึงเครื่องมือนี้ ตัดช่องว่างออกก่อนถอดรหัส ใบรับรองที่เข้ารหัส PEM และเนื้อหาที่เข้ารหัส MIME มักตัด Base64 ที่ 64 หรือ 76 ตัวอักษรต่อบรรทัด การขึ้นบรรทัดใหม่ไม่ใช่ส่วนหนึ่งของข้อมูลที่เข้ารหัสและถูกละเว้นอย่างปลอดภัยระหว่างการแปลง
ควรใช้ hex แทน Base64 เมื่อใด?
ใช้ hex เมื่อต้องการความอ่านง่ายระดับไบต์ — ตรวจสอบ output การเข้ารหัส ดีบักโปรโตคอลไบนารี หรือระบุค่าสี (#ff5733) ใช้ Base64 เมื่อความกะทัดรัดสำคัญ — ฝังข้อมูลใน JSON ส่งผ่านอีเมล (MIME) หรือสร้าง data URI สำหรับการจัดเก็บและส่ง Base64 ประหยัดพื้นที่ประมาณ 33% เมื่อเทียบกับ hex