Công cụ chuyển Base64 sang Hex

Mã hóa lại dữ liệu Base64 thành các byte hex

Mã hóa lại ở mức byte, an toàn với dữ liệu nhị phânHai chiều — nhấn Đổi chiều để chuyển đổi ngược lại
Đầu vào Base64
Kết quả hex

Hướng dẫn công cụ

Về Công cụ chuyển Base64 sang Hex

Base64 to Hex chuyển một payload đã mã hóa thành dạng xem thập lục phân thuần của các byte bên dưới, nhờ đó bạn đọc được một khối dữ liệu nhị phân theo từng byte thay vì phải đoán xem một bức tường ký tự Base64 chứa những gì.

Công cụ chuyển đổi theo cả hai chiều, loại bỏ tiền tố data URI và các dòng tiêu đề PEM, chấp nhận hex có hoặc không có 0x và dấu phân cách, đồng thời báo số byte cùng loại file được nhận diện khi các byte đầu khớp với một chữ ký đã biết.

Cách dùng Base64 to Hex

  1. Dán giá trị đã mã hóa vào ô nhập; tiền tố data:image/png;base64, hoặc các dòng BEGIN và END của một khối PEM sẽ được gỡ bỏ giúp bạn, và khoảng trắng được bỏ qua.
  2. Dùng nút đổi chiều để chuyển qua lại giữa Base64 sang hex và hex sang Base64.
  3. Với đầu vào hex, hãy dán đúng dạng mà công cụ của bạn sinh ra: chữ số trần, có tiền tố 0x, hoặc các byte cách nhau bằng khoảng trắng, dấu hai chấm hay dấu gạch nối.
  4. Bật chế độ in hoa hoặc thêm khoảng cách giữa các byte để khớp với cách trình bày trong trình gỡ lỗi hay tài liệu giao thức của bạn.

Khi nào bạn cần dùng

  • Xem xét các byte thô của một chứng chỉ hoặc khóa bằng cách chuyển phần thân Base64 của PEM sang hex rồi lần theo cấu trúc DER bằng tay.
  • Kiểm tra magic number ở đầu một file hoặc ảnh để xác nhận loại thật của nó thay vì tin vào phần mở rộng.
  • Gỡ lỗi các khung giao thức nhị phân, payload firmware hay vector kiểm thử mật mã vốn được ghi tài liệu bằng hex nhưng lại truyền đi dưới dạng Base64.
  • Biến một bản dump hex từ công cụ bắt gói tin thành Base64 để dán vào file cấu hình hoặc phần thân một yêu cầu API.

Base64 và hex mã hóa cùng một chuỗi byte như thế nào

Cả hai đều là cách biểu diễn bằng văn bản của cùng một chuỗi byte, nhưng chúng đánh đổi giữa độ nén và độ dễ đọc theo hai hướng ngược nhau.

  • Base64 nén 3 byte thành 4 ký tự, nên văn bản đã mã hóa lớn hơn dữ liệu gốc khoảng 33 phần trăm.
  • Các ký tự = ở cuối là phần đệm, được thêm vào khi độ dài đầu vào không phải bội số của 3.
  • Hex ánh xạ 1 byte thành đúng 2 ký tự, làm tăng gấp đôi kích thước nhưng giữ được một vị trí cố định cho mọi byte.
  • Chính ánh xạ cố định đó khiến hex thắng thế khi gỡ lỗi: byte thứ 12 luôn bắt đầu ở ký tự thứ 24, nên các vị trí trong đặc tả trùng khớp với những gì bạn nhìn thấy.

Câu hỏi thường gặp về Base64 sang Hex

Vì sao ảnh hay chứng chỉ Base64 của tôi trông như rác trong một bộ giải mã Base64 thông thường?
Phần lớn bộ giải mã hiển thị kết quả dưới dạng văn bản UTF-8. Payload nhị phân chứa những giá trị byte không phải văn bản hợp lệ, nên chúng hiện ra thành ký tự thay thế hoặc bị biến dạng. Hex tránh được điều đó.
Tôi có thể dán nguyên một khối PEM hoặc một data URI không?
Có. Các dòng đánh dấu BEGIN và END cùng tiền tố data URI đều được gỡ bỏ trước khi giải mã, và các ký tự xuống dòng được bỏ qua.
Chiều ngược lại chấp nhận những định dạng hex nào?
Tiền tố 0x, chữ số hex trần, và các byte cách nhau bằng khoảng trắng, dấu hai chấm hay dấu gạch nối đều dùng được. Dấu phân cách được gỡ bỏ trước khi các byte được mã hóa lại.
Loại file được nhận diện có ý nghĩa gì?
Các byte đầu tiên được đối chiếu với chữ ký đã biết của PNG, JPEG, GIF, PDF, ZIP, GZIP và DER. Nếu không có gì khớp, công cụ không hiển thị loại nào thay vì đưa ra một phỏng đoán.
Dữ liệu của tôi có được tải lên đâu không?
Không. Việc giải mã, mã hóa lại và nhận diện chữ ký đều diễn ra trong trình duyệt của bạn, nên khóa, chứng chỉ và các khung tin đã bắt được không bao giờ bị gửi tới wetool.site.

Base64 to Hex so với một bộ giải mã Base64 thiên về văn bản

Một bộ mã hóa và giải mã Base64 thông thường đi theo đường UTF-8: nó giải mã Base64 rồi diễn giải kết quả thành một chuỗi ký tự. Cách đó ổn với JSON và các token đọc được, nhưng phần đầu của một file PNG, một chứng chỉ mã hóa DER hay một khung giao thức nhị phân lại chứa những giá trị byte không mang ý nghĩa văn bản hợp lệ, nên kết quả hiện ra méo mó và các byte có thể mất đi trên đường quay ngược lại. Trang này không hề chạm vào lớp văn bản. Nó chuyển đổi giữa Base64 và hex ở mức byte, nên 0x00, 0xFF và mọi chuỗi UTF-8 không hợp lệ đều sống sót nguyên vẹn qua một vòng chuyển đổi khứ hồi.

Đọc một bản dump hex theo từng byte

Khi payload đã ở dạng hex, vài byte đầu tiên thường cho bạn biết mình đang cầm thứ gì.

  • 89 50 4e 47 là một file PNG, còn ff d8 ff đánh dấu phần mở đầu của dữ liệu JPEG.
  • 25 50 44 46 là PDF, 50 4b 03 04 là ZIP hoặc bất kỳ container nào dựa trên ZIP, và 1f 8b là GZIP.
  • Hai byte đầu 30 82 là thẻ SEQUENCE của một cấu trúc DER, đây chính là hình dạng của phần thân một chứng chỉ hoặc khóa sau khi phần Base64 của PEM được giải mã.
  • Số lượng chữ số hex lẻ thì không thể ghép thành các byte trọn vẹn, nên hãy kiểm tra xem có thiếu chữ số nào ở hai đầu bản dump đã sao chép hay không.