แปลงข้อความเป็นเลขฐาน 16
อ่านข้อมูลที่ดัมป์จากหน่วยความจำ ตรวจดูว่าโปรโตคอลส่งอะไรออกไปบนสายจริงๆ หรือแกะโจทย์ CTF ไม่ช้าก็เร็วคุณต้องดูไบต์ที่อยู่เบื้องหลังสตริง วางข้อความลงไป แล้วเครื่องมือนี้จะคืนค่าออกมาเป็นเลขฐาน 16 ทีละไบต์ จะเว้นวรรคแบบ hexdump (48 65 6c 6c 6f) หรือติดกันรวดเดียว (48656c6c6f) ก็ได้ สลับโหมดแล้วทิศทางจะกลับกัน เลขฐาน 16 ที่คุณวางจะกลายเป็นข้อความที่อ่านออกอีกครั้ง
เครื่องมือนี้ทำงานอย่างไร
-
1
เลือกทิศทาง
ข้อความเป็นเลขฐาน 16 จะเข้ารหัสสิ่งที่คุณพิมพ์ ส่วนเลขฐาน 16 เป็นข้อความจะแปลงกลับเป็นตัวอักษร
-
2
เลือกตัวคั่น
เวลาเข้ารหัส จะใส่ช่องว่างหนึ่งช่องระหว่างไบต์ หรือไม่ใส่เลยก็ได้ มีสองตัวเลือกนี้เท่านั้น
-
3
วางข้อมูลของคุณ
ข้อความจะถูกอ่านเป็น UTF-8 ส่วนเลขฐาน 16 จะมีคำนำหน้า 0x หรือ \x จุลภาค ช่องว่าง หรือการขึ้นบรรทัดใหม่ปนมาก็ได้ ระบบตัดออกให้เอง
-
4
แปลงและคัดลอก
ผลลัพธ์จะปรากฏด้านล่างพร้อมปุ่มคัดลอก ไม่มีการดาวน์โหลดไฟล์ใดๆ
ทำไมต้องเลขฐาน 16 ไม่ใช่ฐาน 10
เลขฐาน 16 หนึ่งหลักครอบคลุม 4 บิตพอดี สองหลักจึงครอบคลุมหนึ่งไบต์พอดีทุกครั้ง เลขฐาน 10 บังคับให้ต้องคำนวณเพื่อรู้ว่าค่ายังอยู่ในช่วงหรือไม่ (128 อยู่ในช่วงไหม แล้ว 256 ล่ะ) ขณะที่เลขฐาน 16 แสดงให้เห็นตรงๆ 00 คือไบต์ที่เล็กที่สุด ff คือใหญ่ที่สุด และทุกไบต์ระหว่างนั้นกว้างสองตัวอักษรเท่ากันหมด ความลงตัวนี้เองที่ทำให้ข้อมูลดัมป์หน่วยความจำ การจับแพ็กเก็ต ลายเซ็นไฟล์ และรหัสสี ถูกเขียนด้วยเลขฐาน 16
เครื่องมือนี้ให้ผลลัพธ์อย่างไรจริงๆ
- เป็นตัวพิมพ์เล็กเสมอ ตัวเข้ารหัสเขียน
6cไม่เคยเขียน6Cเลขฐาน 16 ไม่แยกตัวพิมพ์ใหญ่เล็ก จึงไม่มีอะไรสูญหาย แต่ถ้ารูปแบบปลายทางต้องการตัวพิมพ์ใหญ่ ให้นำผลลัพธ์ไปผ่านเครื่องมือแปลงตัวพิมพ์ - สองหลักต่อหนึ่งไบต์เสมอ อักขระแท็บคือ
09ไม่ใช่9เพื่อให้นับขอบเขตของไบต์ได้ - ช่องว่างหรือไม่มีอะไรเลย มีตัวคั่นแค่สองแบบนี้ ฝั่งเข้ารหัสไม่มีคำนำหน้า
0xหรือ\xให้ ถ้าต้องการสตริง escape ของ C หรือ Python ให้เติมเองในโปรแกรมแก้ไขข้อความ - เป็น UTF-8 ตลอดทั้งกระบวนการ ข้อความถูกวัดเป็นไบต์ ไม่ใช่จำนวนตัวอักษร
เลขฐาน 16 กับ Unicode
H ใช้พื้นที่หนึ่งไบต์ใน UTF-8 จึงกลายเป็น 48 ส่วนทุกอย่างที่อยู่นอก ASCII ล้วนใช้มากกว่านั้น
| อักขระ | เลขฐาน 16 แบบ UTF-8 | ไบต์ |
|---|---|---|
| A | 41 | 1 |
| é | c3 a9 | 2 |
| € | e2 82 ac | 3 |
| 🚀 | f0 9f 9a 80 | 4 |
ดังนั้น Hello เข้ารหัสได้เป็น 48 65 6c 6c 6f คือห้าตัวอักษรและห้าไบต์ ส่วน café เข้ารหัสได้เป็น 63 61 66 c3 a9 คือสี่ตัวอักษรแต่ห้าไบต์ เพราะ é ต้องใช้สองไบต์ อักษรไทยยิ่งกินพื้นที่มากกว่านั้น ตัวอักษรไทยแต่ละตัวใช้สามไบต์ เช่น ก ตัวเดียวก็ได้ e0 b8 81 แล้ว และสระกับวรรณยุกต์ก็นับเป็นตัวอักษรของมันเองอีกตัวละสามไบต์ ถ้าสตริงสั้นๆ ให้คู่เลขฐาน 16 มากกว่าที่คุณคาดไว้ มักเป็นเพราะเหตุนี้
ตัวถอดรหัสรับรูปแบบใดบ้าง
วางรูปแบบใดก็ได้ต่อไปนี้แล้วคุณจะได้ Hello กลับมา
48 65 6c 6c 6fแบบ hexdump48656c6c6fแบบดิบไม่มีตัวคั่น0x48656c6c6fแบบค่าคงที่จำนวนเต็ม\x48\x65\x6c\x6c\x6fแบบ escape ของ C และ Python48,65,6C,6C,6Fคั่นด้วยจุลภาค และปนตัวพิมพ์ใหญ่เล็กอย่างไรก็ได้
คำนำหน้า จุลภาค ช่องว่าง แท็บ และการขึ้นบรรทัดใหม่ จะถูกตัดออกก่อนถอดรหัส ส่วนอย่างอื่นไม่ถูกตัด ยัติภังค์ใน 48-65 เครื่องหมาย # หน้ารหัสสี หรือตัวอักษรที่เลย f ไปแล้ว จะทำให้การถอดรหัสหยุดลง เช่นเดียวกับจำนวนหลักที่เป็นเลขคี่ เพราะครึ่งไบต์กลายเป็นตัวอักษรไม่ได้ ในกรณีเหล่านี้เครื่องมือเลือกที่จะไม่คืนค่าอะไรเลย ดีกว่าเดาผลลัพธ์ที่ไม่ครบ ถ้าช่องผลลัพธ์ยังว่างอยู่ ให้มองหาสาเหตุตรงจุดนี้
รหัสสีเลขฐาน 16 ใช้สัญกรณ์เดียวกัน แต่ไม่ใช่เนื้อหาเดียวกัน
#ff8800 ใช้ระบบฐาน 16 แบบเดียวกัน แต่สามไบต์นั้นอธิบายช่องสีแดง เขียว และน้ำเงิน ไม่ใช่ตัวอักษร ลองตัด # ออกแล้วถอดรหัสที่นี่ คุณจะได้ไบต์ดิบสามไบต์ที่ประกอบกันไม่เป็นข้อความที่อ่านออก งานแบบนั้นควรใช้เครื่องมือเลือกสีแทน
คำถามที่พบบ่อย
เหมือนกัน เฮกซาเดซิมอลกับ base16 เป็นสองชื่อของระบบเดียวกัน คือมีสิบหกหลัก (0 ถึง 9 และ a ถึง f) แต่ละหลักบรรจุ 4 บิต
จากเครื่องมือนี้ไม่ได้ ตัวเข้ารหัสเขียนเป็นตัวพิมพ์เล็กเสมอ เนื่องจากเลขฐาน 16 ไม่แยกตัวพิมพ์ 4f กับ 4F จึงเป็นไบต์เดียวกัน ถ้ารูปแบบที่คุณใช้ต้องการตัวพิมพ์ใหญ่ ให้นำผลลัพธ์ไปผ่านเครื่องมือแปลงตัวพิมพ์ ส่วนตัวถอดรหัสอ่านได้ทั้งสองแบบอยู่แล้ว
ตัวถอดรหัสรับเฉพาะหลัก 0 ถึง 9 และ a ถึง f ในจำนวนที่เป็นเลขคู่ หลังจากตัดคำนำหน้า 0x และ \x จุลภาค และช่องว่างออกแล้ว ยัติภังค์ เครื่องหมาย # ตัวอักษรที่เลย f หรือหลักที่ขาดไปหนึ่งตัว ล้วนทำให้ข้อมูลไม่ถูกต้อง และเครื่องมือเลือกให้ผลลัพธ์ว่างมากกว่าผลลัพธ์ที่ผิด ลองนับจำนวนหลักและมองหาเครื่องหมายวรรคตอนที่หลุดเข้ามา
อิโมจิส่วนใหญ่อยู่ในระนาบเสริมของ Unicode ซึ่ง UTF-8 เก็บด้วยสี่ไบต์ ส่วนอักขระ ASCII ล้วนยังคงใช้หนึ่งไบต์ต่อตัว จึงเป็นเหตุผลที่ข้อความภาษาอังกฤษได้หนึ่งคู่ต่อหนึ่งตัวอักษร แต่ภาษาไทยไม่เป็นเช่นนั้น
ไม่ได้ ตรงนี้เป็นช่องข้อความ จึงรองรับเฉพาะสิ่งที่คุณพิมพ์หรือวางได้ สำหรับข้อมูลไบนารี base64 กะทัดรัดกว่าและส่งต่อได้ง่ายกว่า
ถูกส่ง การแปลงทำงานบนเซิร์ฟเวอร์ของเรา สิ่งที่คุณวางจึงเดินทางไปพร้อมคำขอและผลลัพธ์เดินทางกลับมา เราบันทึกเพียงว่ามีการใช้งานและตัวเลือกที่คุณเลือกเท่านั้น ไม่เคยบันทึกตัวข้อความ และไม่เก็บข้อความไว้หลังจากส่งผลลัพธ์กลับ หากเป็นข้อมูลที่เป็นความลับจริงๆ ให้ใช้เครื่องมือที่ทำงานแบบออฟไลน์บนเครื่องของคุณเอง
เครื่องมือที่เกี่ยวข้อง
เครื่องแปลงตัวเลขเป็นคำไทย
เขียนจำนวนไม่เกิน 18 หลักเป็นคำไทย หรือเขียนจำนวนบาทและสตางค์ตามค่าที่กรอกในเบราว์เซอร์ รองรับเลขอารบิกกับเลขไทยและไม่ปัดค่า
เครื่องมือสร้างตัวอักษรวงกลม
แปลงข้อความธรรมดาให้เป็นตัวอักษรวงกลม (Ⓐ Ⓑ Ⓒ) ที่คัดลอกแล้ววางลงในไบโอ Instagram, TikTok และ Discord ได้ มีทั้งตัวพิมพ์ใหญ่และตัวพิมพ์เล็กในวงกลม พร้อมตัวเลขในวงกลม โดยไม่ต้องใช้แอป
สัญลักษณ์ลูกศรสำหรับคัดลอก
คัดลอกลูกศร Unicode ที่ใช้บ่อยได้ในคลิกเดียว ทั้งแบบตรง สองเส้น ทแยง มีขอ วงกลม และสามเหลี่ยม สำหรับเอกสาร แชต และงานออกแบบ
สัญลักษณ์น้อยกว่าหรือเท่ากับ
คัดลอกสัญลักษณ์ ≤ และสัญลักษณ์เปรียบเทียบทางคณิตศาสตร์ที่เกี่ยวข้อง รวมถึง Unicode เอนทิตี HTML และการเขียน LaTeX สำหรับสเปรดชีต งานวิจัย และหน้าเว็บ
ตัวเข้ารหัสเอนทิตี HTML
แปลงอักขระ HTML ที่ต้องระวังห้าตัวเป็นเอนทิตีแบบคงที่ หรือถอดรหัสเอนทิตีเป็นข้อความในเบราว์เซอร์ของคุณ
เครื่องกำเนิดข้อความแบบวงกลม
แปลงข้อความธรรมดาเป็นอักขระ Unicode แบบวงกลม รูปแบบโครงร่าง เติม และวงกลมตัวเลขสำหรับประวัติโซเชียล แชท และเอกสาร
เครื่องมือนี้มีให้บริการในภาษาอื่น
- Texto a hexadecimal [ES]
- Tekst na hex [PL]
- テキストを 16 進数に変換 [JA]
- Texto para hexadecimal [PT]
- Text till hex [SV]
- Văn bản sang hex [VI]
- تحويل النص إلى ست عشري [AR]
- Texte en hexadécimal [FR]
- Text in Hex [DE]
- Teks ke heksadesimal [ID]
- 텍스트를 16진수로 [KO]
- Tekst naar hex [NL]
- Metinden onaltılığa [TR]
- 文本转十六进制 [ZH]
- Text to Hex [EN]
- Da testo a esadecimale [IT]
- Текст в шестнадцатеричный код [RU]