Giải mã Hex

Dán chuỗi thập lục phân bên dưới và nhấp Giải mã để chuyển đổi về văn bản. Mọi xử lý đều diễn ra cục bộ trong trình duyệt của bạn.

Khoảng trắng, dấu hai chấm, dấu phẩy, gạch nối và tiền tố 0x đều bị loại bỏ trước khi giải mã.
Đã sao chép!

Hex Decoding là gì?

Giải mã hex chuyển đổi chuỗi thập lục phân trở lại biểu diễn byte gốc và sau đó thành văn bản. Đầu vào có thể chứa dấu cách, dấu hai chấm, hoặc không có dấu phân cách giữa các cặp hex.

Mỗi cặp ký tự hex (00ff) biểu diễn một byte. Các byte giải mã được diễn giải dưới dạng văn bản UTF-8.

Khoảng trắng, dấu hai chấm, dấu phẩy, chấm phẩy, dấu chấm và gạch nối đều bị loại bỏ trước khi giải mã, nên hex chép thẳng từ một dấu vân tay hay bản dump thường chạy được mà không cần dọn. Sau đó các byte được đọc theo UTF-8, và thứ gì không phải UTF-8 hợp lệ sẽ được báo lại thay vì bị làm hỏng.

Bạn đang gỡ lỗi thứ gì đó không chịu giải mã?

Một payload không chịu giải mã thường là triệu chứng chứ không phải lỗi gốc: mã hoá hai lần ở đâu đó trong đường ống, bộ ký tự được đoán thay vì được khai báo, một token ký trên những byte không hẳn là byte mà ai đó trông đợi. Chúng tôi làm đúng loại việc này, trên các tích hợp, API và những hệ thống chuyền dữ liệu qua lại.

Cho chúng tôi biết chỗ nào đang hỏng

Câu hỏi thường gặp

Vì sao chuỗi hex của tôi không giải mã được?
Thường là số chữ số lẻ, hoặc có một ký tự không phải chữ số hex. Mỗi byte cần đúng hai chữ số, nên số lẻ nghĩa là có chỗ bị cắt cụt hoặc một chữ số đã rơi mất dọc đường. Ký tự lạc thường là chữ l thường gõ nhầm thành số 1, chữ O hoa thành số 0, hoặc phần đuôi của một dòng vừa sao chép đi kèm theo.
Tôi dán hex có khoảng trắng, dấu hai chấm hay tiền tố 0x được không?
Khoảng trắng, dấu hai chấm, dấu phẩy, chấm phẩy, dấu chấm và gạch nối đều bị loại bỏ trước khi giải mã, nên hex chép thẳng từ dấu vân tay chứng chỉ, địa chỉ MAC hay một bản dump thường chạy được mà không cần dọn. Tiền tố 0x trước mỗi byte thì không được bỏ, vậy nên hãy xoá chúng trước nếu nguồn của bạn có.
Nếu các byte giải ra không phải văn bản thì sao?
Đó là trường hợp bình thường chứ không phải lỗi. Hex là cách viết byte ra, và những byte đó thường chẳng phải văn bản. Trang này giải mã chúng theo UTF-8 và nói thẳng khi chúng không phải UTF-8 hợp lệ, thay vì in ra ký tự thay thế rồi để bạn tự thắc mắc. Nếu bạn trông đợi văn bản mà không có, hãy kiểm tra xem các byte có bị nén hoặc mã hoá không.
Làm sao biết các byte đó dùng bảng mã ký tự nào?
Chỉ nhìn hex thì không biết được. Không có gì trong một chuỗi hex ghi lại bảng mã đã tạo ra nó; thông tin ấy nằm bên ngoài các byte, trong một header HTTP, một định dạng tệp hay một đặc tả giao thức. Trang này giả định UTF-8, điều đúng trong đại đa số trường hợp, và cũng vì thế một chuỗi không hợp lệ sẽ được báo là dữ liệu nhị phân chứ không bị lặng lẽ biến thành chữ méo mó. Nếu bạn biết các byte thuộc bảng mã khác, hãy giải mã bằng công cụ cho phép chỉ định bảng mã.
Giải mã hex có đảo ngược được không?
Hoàn toàn được. Hex là phép thay thế thẳng, hai ký tự cho mỗi byte, không mất gì và cũng không thêm gì, nên mã hoá rồi giải mã sẽ trả về đúng những byte ban đầu. Thứ không phải lúc nào cũng đảo ngược được là bước sau đó: đưa byte trở lại thành văn bản cần đúng bảng mã, và một dãy byte không hợp lệ trong bảng mã đó thì đơn giản là không có dạng văn bản nào cả.