ตัวแปลง Base64-Hex
ตัวแปลง Base64-Hex แบบสองทาง แปลง Hex เป็น Base64 และ Base64 เป็น Hex ได้ในหน้าเดียว รองรับลบคำนำหน้า 0x สลับตัวพิมพ์ใหญ่เล็ก แปลงแบบเรียลไทม์ ประมวลผลในเครื่อง เหมาะสำหรับวิเคราะห์แพ็กเก็จ Wireshark และดีบั๊กโปรโตคอล
ตัวแปลง Base64-Hex แบบสองทาง แปลง Hex เป็น Base64 และ Base64 เป็น Hex ได้ในหน้าเดียว รองรับลบคำนำหน้า 0x สลับตัวพิมพ์ใหญ่เล็ก แปลงแบบเรียลไทม์ ประมวลผลในเครื่อง เหมาะสำหรับวิเคราะห์แพ็กเก็จ Wireshark และดีบั๊กโปรโตคอล
ไม่ใช่ ทั้ง Hex และ Base64 เป็นเพียงการเข้ารหัส (encoding) ที่แปลงรูปแบบข้อมูล ไม่ใช่การเข้ารหัสเพื่อความปลอดภัย (encryption) ทุกคนสามารถถอดรหัส Base64 หรือ Hex ได้หากมีสตริงนั้น หากต้องการปกป้องข้อมูลให้ใช้ AES หรืออัลกอริทึมการเข้ารหัสที่เหมาะสม
ได้ ตัวแปลงนี้รองรับข้อมูล Hex ที่มีช่องว่างคั่นตามรูปแบบของ Wireshark และ tcpdump เพียงคัดลอกคอลัมน์ Hex จาก Wireshark แล้ววางลงในช่องอินพุต ระบบจะจัดการช่องว่างและการจัดรูปแบบโดยอัตโนมัติ
ไม่ต้อง ตัวแปลงนี้มีคุณสมบัติลบคำนำหน้า 0x อัตโนมัติ สามารถวางข้อมูลเช่น 0xDEAD 0xBEEF ได้โดยตรง ระบบจะตรวจจับและลบ 0x ที่จุดเริ่มต้นของแต่ละบล็อก Hex ก่อนประมวลผล
ไม่ การประมวลผลทั้งหมดเกิดขึ้นในเครื่องบนเบราว์เซอร์โดยใช้ JavaScript ไม่มีข้อมูลใดๆ ถูกส่งไปยังเซิร์ฟเวอร์ภายนอก ข้อมูลของคุณไม่ออกจากอุปกรณ์
ได้ มีตัวสลับตัวพิมพ์ใหญ่เล็กสำหรับผลลัพธ์ Hex สามารถเลือกตัวพิมพ์ใหญ่ (DEADBEEF) หรือตัวพิมพ์เล็ก (deadbeef) เพื่อให้สอดคล้องกับรูปแบบที่ระบบเป้าหมายต้องการ
Hex (Base16) ใช้อักขระ 16 ตัวและเพิ่มขนาดข้อมูล 100% (1 ไบต์ = 2 อักขระ) ในขณะที่ Base64 ใช้อักขระ 64 ตัวและเพิ่มขนาดประมาณ 33% (3 ไบต์ = 4 อักขระ) Hex อ่านง่ายกว่าแต่มีขนาดใหญ่กว่า Base64 มีขนาดเล็กกว่าแต่อ่านยากกว่าและใช้กันอย่างแพร่หลายในเว็บและ API
ตัวแปลงนี้ใช้ Base64 มาตรฐาน (มาตรฐาน RFC 4648 §4 ที่ใช้ + และ /) สำหรับ Base64URL (ใช้ - และ _ แทน + และ / และไม่มี padding) สามารถใช้เครื่องมือ Base64 URL-Safe ที่เกี่ยวข้องได้
เครื่องหมาย = เป็นส่วนหนึ่งของ padding ของ Base64 ใช้เพื่อทำให้ความยาวสตริง Base64 เป็นพหุคูณของ 4 เกิดขึ้นเมื่อข้อมูลต้นทางไม่ใช่พหุคูณของ 3 ไบต์ เป็นพฤติกรรมมาตรฐานตาม RFC 4648
ได้ เมื่อโหลดหน้าเว็บเสร็จสมบูรณ์แล้ว สามารถใช้งานแบบออฟไลน์ได้ เนื่องจากไม่มีการเรียก API ภายนอกหรือประมวลผลบนเซิร์ฟเวอร์ สามารถบันทึกหน้าเว็บและใช้งานแบบโลคอลได้
เนื่องจากการประมวลผลเกิดขึ้นในเครื่องและไม่มีข้อมูลส่งไปยังเซิร์ฟเวอร์ จึงปลอดภัยกว่าเครื่องมือออนไลน์ที่ส่งข้อมูลไปประมวลผลบนเซิร์ฟเวอร์ อย่างไรก็ตาม แนวทางปฏิบัติที่ดีที่สุดคือไม่ควรนำคีย์การผลิต (production keys) ไปวางในเครื่องมือออนไลน์ใดๆ ควรใช้เครื่องมือโลคอลเช่น openssl สำหรับข้อมูลที่ละเอียดอ่อนอย่างยิ่ง
มีเหตุผลหลายประการ: (1) Base64 มีขนาดเล็กกว่า (~33% overhead เทียบกับ 100% ของ Hex) (2) API และบริการเว็บจำนวนมากยอมรับเฉพาะ Base64 สำหรับข้อมูลไบนารี (3) สามารถส่งผ่านช่องทางที่รองรับเฉพาะข้อความได้ง่ายกว่า (4) เป็นรูปแบบมาตรฐานสำหรับ Data URI, JWT, อีเมล MIME
หมายความว่าตัวแปลงนี้สามารถแปลงได้ทั้งสองทิศทางในหน้าเดียว: Hex → Base64 และ Base64 → Hex สามารถคลิกปุ่มสลับทิศทางเพื่อเปลี่ยนทิศทางการแปลง ทำให้สะดวกสำหรับการตรวจสอบย้อนกลับและการทำงานที่ต้องสลับไปมาระหว่างสองรูปแบบ
ขึ้นอยู่กับหน่วยความจำของเบราว์เซอร์ แต่โดยทั่วไปสามารถรองรับข้อมูลได้หลายร้อยกิโลไบต์ถึงไม่กี่เมกะไบต์ สำหรับข้อมูลขนาดใหญ่มาก (หลายสิบเมกะไบต์ขึ้นไป) แนะนำให้ใช้เครื่องมือบรรทัดคำสั่งเช่น xxd, base64, หรือ openssl เพื่อประสิทธิภาพที่ดีกว่า
การแสดงผล Hex จากเครื่องมือวิเคราะห์เครือข่ายและดีบั๊กเกอร์ (Wireshark, tcpdump, hexdump) มักมีช่องว่างคั่นระหว่างไบต์เพื่อความอ่านง่าย เช่น '48 65 6C 6C 6F' การรองรับช่องว่างทำให้สามารถวางข้อมูลจากแหล่งเหล่านี้ได้โดยตรงโดยไม่ต้องแก้ไข
ตัวแปลงนี้ออกแบบมาสำหรับการดีบั๊กและการใช้งานแบบโต้ตอบผ่านหน้าเว็บ หากต้องการฟังก์ชันการแปลงในโค้ด ให้ใช้ไลบรารีมาตรฐานของภาษาโปรแกรมนั้นๆ เช่น Buffer.from(str, 'hex').toString('base64') ใน Node.js หรือ base64.b64encode(bytes.fromhex(hex_str)) ใน Python
Base64 และ Hex (ฐานสิบหก) เป็นรูปแบบการเข้ารหัสไบนารีเป็นข้อความที่ใช้กันอย่างแพร่หลายในการพัฒนาซอฟต์แวร์และการสื่อสารเครือข่าย Hex ใช้อักขระ 0-9 และ A-F (หรือ a-f) แทนแต่ละไบต์ด้วยสองอักขระ ทำให้อ่านและดีบั๊กได้ง่าย ในขณะที่ Base64 ใช้อักขระ 64 ตัว (A-Z, a-z, 0-9, +, /) เพื่อแปลงข้อมูลไบนารีให้อยู่ในรูปแบบที่ส่งผ่านช่องทางข้อความได้อย่างปลอดภัยตาม RFC 4648
การแปลงระหว่าง Hex และ Base64 เป็นงานที่พบบ่อยในการดีบั๊กโปรโตคอลเครือข่าย เมื่อใช้ Wireshark จับแพ็กเก็จ ข้อมูลไบนารีมักแสดงในรูปแบบ Hex แต่ API และบริการเว็บจำนวนมากต้องการข้อมูลในรูปแบบ Base64 สำหรับ JSON payload, HTTP header, หรือพารามิเตอร์ URL ตัวแปลงนี้ช่วยให้การสลับระหว่างสองรูปแบบเป็นไปอย่างราบรื่นโดยไม่ต้องเขียนสคริปต์หรือใช้เครื่องมือบรรทัดคำสั่ง
การแปลงจาก Hex เป็น Base64 ทำงานสองขั้นตอน: ขั้นแรกแปลงสตริง Hex เป็นข้อมูลไบนารีดิบ จากนั้นเข้ารหัสข้อมูลไบนารีนั้นเป็น Base64 การแปลงย้อนกลับจาก Base64 เป็น Hex ก็ทำในทำนองเดียวกัน: ถอดรหัส Base64 เป็นไบนารีก่อน แล้วจึงแปลงเป็นสตริง Hex ตัวแปลงนี้จัดการขั้นตอนทั้งหมดภายในโดยอัตโนมัติ รวมถึงจัดการ padding ของ Base64 และช่องว่างในข้อมูล Hex
คุณสมบัติการลบคำนำหน้า 0x มีความสำคัญอย่างยิ่งในการทำงานกับข้อมูลจากภาษาโปรแกรมหลายภาษา เช่น C/C++, Python, และ Rust มักแสดงค่า Hex ด้วยคำนำหน้า 0x (เช่น 0xDEADBEEF) หากไม่ลบคำนำหน้านี้ออกก่อน การประมวลผลจะล้มเหลว ตัวแปลงนี้ตรวจจับและลบ 0x ที่จุดเริ่มต้นของแต่ละบล็อก Hex โดยอัตโนมัติ ทำให้สามารถวางข้อมูลจากโค้ดหรือดีบักเกอร์ได้โดยตรง
การสลับตัวพิมพ์ใหญ่เล็กของ Hex ช่วยให้สอดคล้องกับรูปแบบที่แตกต่างกันของระบบต่างๆ บางระบบและไลบรารีใช้ตัวพิมพ์ใหญ่ (DEADBEEF) ในขณะที่บางแห่งใช้ตัวพิมพ์เล็ก (deadbeef) เอกสารจำนวนมากใช้ตัวพิมพ์ใหญ่เพื่อความชัดเจน ส่วนเอาต์พุตของ Wireshark และ tcpdump มักเป็นตัวพิมพ์เล็กผสมกับตัวพิมพ์ใหญ่ ตัวแปลงนี้ให้คุณเลือกตัวพิมพ์เอาต์พุตเพื่อให้ตรงกับความต้องการของระบบเป้าหมาย
การประมวลผลในเครื่องเป็นหลักการสำคัญของตัวแปลงนี้ การแปลงทั้งหมดทำงานภายในเบราว์เซอร์โดยใช้ JavaScript ไม่มีข้อมูลใดๆ ถูกส่งไปยังเซิร์ฟเวอร์ภายนอก ซึ่งหมายความว่าข้อมูลที่ละเอียดอ่อน เช่น คีย์เข้ารหัส โทเค็น API หรือข้อมูลแพ็กเก็จที่จับได้ จะไม่ออกจากอุปกรณ์ของคุณ ซึ่งสอดคล้องกับแนวทางปฏิบัติที่ดีที่สุดสำหรับเครื่องมือด้านความปลอดภัยและการดีบั๊ก
การแปลงแบบเรียลไทม์ช่วยเพิ่มประสิทธิภาพในการทำงานอย่างมาก เมื่อคุณวางหรือพิมพ์ข้อมูล ผลลัพธ์จะปรากฏทันทีโดยไม่ต้องกดปุ่มแปลงหรือรีเฟรชหน้า ซึ่งเป็นประโยชน์อย่างยิ่งเมื่อทำงานกับ Wireshark: คุณสามารถคัดลอกแพ็กเก็จจากหน้าต่างจับแพ็กเก็จ วางลงในตัวแปลง และเห็นผลลัพธ์ Base64 ได้ทันที ทำให้เวิร์กโฟลว์การวิเคราะห์เป็นไปอย่างต่อเนื่อง
แม้ว่าตัวแปลงนี้จะสะดวกสำหรับการพัฒนาและดีบั๊ก แต่ควรจำไว้ว่าทั้ง Hex และ Base64 เป็นเพียงการเข้ารหัส ไม่ใช่การเข้ารหัสเพื่อความปลอดภัย ข้อมูลที่เข้ารหัสด้วย Base64 หรือ Hex สามารถถอดรหัสได้โดยทุกคนที่มีสตริงนั้น หากต้องการปกป้องข้อมูลที่ละเอียดอ่อน ควรใช้อัลกอริทึมการเข้ารหัสที่เหมาะสม เช่น AES แทนการพึ่งพาการเข้ารหัส Base64 หรือ Hex
| คุณสมบัติ | Hex (Base16) | Base64 |
|---|---|---|
| จำนวนอักขระ | 16 | 64 |
| ชุดอักขระ | 0-9, A-F (a-f) | A-Z, a-z, 0-9, +, / |
| ขนาดที่เพิ่มขึ้น | 100% | ~33% |
| มาตรฐาน | RFC 4648 §8 | RFC 4648 §4 |
| การใช้งานหลัก | ดีบั๊ก, แฮช, คีย์ | อีเมล, API, JWT, Data URI |
| อ่านง่ายต่อมนุษย์ | ง่าย | ยาก |
| Hex | Base64 | ข้อความ |
|---|---|---|
48656C6C6F | SGVsbG8= | Hello |
4765656B466F726D6174 | R2Vla0Zvcm1hdA== | GeekFormat |
DEADBEEF | 3q2+7w== | (ไบนารี) |
00FF | AP8= | (ไบต์) |
| เครื่องมือ | เส้นทาง | คำอธิบาย |
|---|---|---|
| Base64 Encode | /encode/base64-encode/ | เข้ารหัสข้อความเป็น Base64 |
| Base64 Decode | /encode/base64-decode/ | ถอดรหัส Base64 เป็นข้อความ |
| Hex Encode | /encode/hex-encode/ | เข้ารหัสข้อความเป็น Hex |
| Base64 Clean | /encode/base64-clean/ | ทำความสะอาดสตริง Base64 |
| Base58 | /encode/base58/ | เข้ารหัส Base58 |
| URL Encode | /encode/url-encode/ | เข้ารหัส URL |
ตัวแปลง Base64-Hex นี้ประมวลผลข้อมูลทั้งหมดในเครื่องบนเบราว์เซอร์ของคุณโดยใช้ JavaScript ไม่มีข้อมูลใดๆ ที่คุณป้อน (สตริง Hex, สตริง Base64, ผลลัพธ์การแปลง) ถูกส่งไปยังเซิร์ฟเวอร์ภายนอก ไม่มีการบันทึก การวิเคราะห์ หรือการแคชข้อมูลผู้ใช้ หน้าเว็บสามารถใช้งานแบบออฟไลน์ได้เมื่อโหลดเสร็จแล้ว แนวทางปฏิบัติที่ดีที่สุด: หลีกเลี่ยงการนำคีย์การผลิต (production keys) หรือข้อมูลที่ละเอียดอ่อนอย่างยิ่งไปวางในเครื่องมือออนไลน์ใดๆ รวมถึงตัวนี้ด้วย แม้ว่าจะประมวลผลในเครื่องก็ตาม ตัวแปลงนี้เหมาะสำหรับการพัฒนา การดีบั๊ก การเรียนรู้ และการทดสอบ ส่วนข้อมูลการผลิตควรได้รับการจัดการในสภาพแวดล้อมโลคอลที่ควบคุมได้
อินพุตมีอักขระที่ไม่ใช่ 0-9, A-F, a-f, ช่องว่าง หรือคำนำหน้า 0x อาจมีอักขระพิเศษหรือสัญลักษณ์ที่ไม่คาดคิดปะปนมาจากการคัดลอก ตรวจสอบว่าอินพุตมีเฉพาะอักขระที่ถูกต้อง ลองใช้ตัวเลือกทำความสะอาดอินพุตเพื่อลบอักขระที่ไม่ใช่ออก หรือคัดลอกข้อมูลจากแหล่งที่มาใหม่อีกครั้ง ระวังอักขระที่มองไม่เห็นจากการคัดลอกจาก PDF หรือเว็บไซต์
สตริง Base64 มีอักขระที่ไม่ได้รับอนุญาต หรือความยาวไม่ถูกต้อง (ต้องเป็นพหุคูณของ 4) อาจเกิดจากการลบ padding = ออก หรือมีช่องว่าง/บรรทัดใหม่ปะปน ตรวจสอบว่าสตริง Base64 มีเฉพาะอักขระ A-Z, a-z, 0-9, +, /, = เท่านั้น หากความยาวไม่เป็นพหุคูณของ 4 ให้เติม = ที่ท้าย ลองวางข้อมูลใหม่โดยไม่มีการจัดรูปแบบเพิ่มเติม
อาจเกิดจากปัญหาการเข้ารหัสอักขระ (character encoding) เช่น ข้อมูล Hex แทน UTF-8 แต่ถูกตีความเป็น Latin-1 หรือมีช่องว่างในตำแหน่งที่ไม่ถูกต้องในข้อมูล Hex จาก Wireshark ตรวจสอบการเข้ารหัสอักขระของข้อมูลต้นทาง สำหรับข้อมูล Wireshark ให้แน่ใจว่าคัดลอกเฉพาะคอลัมน์ Hex โดยไม่รวมคอลัมน์ข้อความ ลองลบช่องว่างทั้งหมดก่อนแปลงหากพบปัญหา
ข้อมูลขนาดใหญ่มาก (หลายเมกะไบต์) อาจทำให้การแปลงช้าเนื่องจากทำงานบน JavaScript เบราว์เซอร์ หรือมีอักขระที่ไม่ถูกต้องจำนวนมากทำให้ต้องใช้เวลาในการประมวลผลข้อผิดพลาด สำหรับข้อมูลขนาดใหญ่มาก ให้แบ่งข้อมูลเป็นส่วนเล็กๆ ก่อนแปลง ตรวจสอบว่าข้อมูลมีอักขระที่ไม่ถูกต้องหรือไม่ หากเป็นไปได้ ให้ใช้เครื่องมือบรรทัดคำสั่งเช่น xxd หรือ base64 สำหรับไฟล์ขนาดใหญ่มาก