Cách sử dụng
- Dán chuỗi Base64 vào ô Đầu vào. Base64 đã được chọn sẵn làm kiểu mã hóa nguồn, còn hex là kiểu mã hóa đích.
- Đọc kết quả thập lục phân, mỗi byte tương ứng với hai chữ số hex.
- Nếu cần định dạng khác, hãy chọn một kiểu mã hóa đích khác như Base58 hoặc Base32, hoặc nhấn nút Hoán đổi đầu vào và đầu ra để chuyển hex trở lại Base64.
- Sao chép kết quả.
Hai cách viết cùng một dãy byte
Hex và Base64 đều biểu diễn dữ liệu nhị phân dưới dạng văn bản. Hex dùng hai ký tự cho mỗi byte, nhờ vậy giá trị của từng byte rất dễ đọc và so sánh. Base64 gói 3 byte vào 4 ký tự nên ngắn hơn khoảng một phần ba. Chuyển đổi giữa hai dạng chỉ thay đổi cách viết, dữ liệu vẫn giữ nguyên:
| Giá trị | Số byte | Độ dài hex | Độ dài Base64 |
|---|---|---|---|
| Mã băm MD5 | 16 | 32 | 24 |
| Mã băm SHA-1 | 20 | 40 | 28 |
| Mã băm SHA-256, khóa công khai Ed25519 | 32 | 64 | 44 |
| Mã băm SHA-384 | 48 | 96 | 64 |
| Mã băm SHA-512, chữ ký Ed25519 | 64 | 128 | 88 |
Hex cũng là dạng mà trình soạn thảo hex, công cụ phân tích gói tin và trình gỡ lỗi hiển thị, vì vậy chuyển Base64 sang hex giúp bạn đối chiếu dữ liệu với những gì các công cụ đó cho thấy.
Khi nào cần chuyển Base64 sang hex
- So sánh mã băm. Các công cụ như
sha256sumin ra hex, trong khi thuộc tính Subresource Integrity, mã băm Content Security Policy và các header kiểm tra nhưContent-MD5lại dùng Base64. Hãy chuyển đổi một bên để so sánh. - Vân tay SSH.
ssh-keygen -lin vân taySHA256:dưới dạng Base64 không có phần đệm, còn bản ghi DNS SSHFP lưu cùng giá trị băm SHA-256 đó ở dạng hex. Dán phần nằm sauSHA256:để nhận dạng hex. - Khóa, IV và chữ ký. Khi gỡ lỗi mã mật mã, việc xem các byte ở dạng hex giúp bạn dễ dàng kiểm tra độ dài, so sánh giá trị và phát hiện byte bị thiếu hoặc thừa.
Định dạng đầu vào được chấp nhận
Dấu cách và ký tự xuống dòng trong chuỗi Base64 đầu vào đều được bỏ qua, các ký tự an toàn cho URL - và _ được chấp nhận, còn phần đệm = là tùy chọn, nên bạn có thể dán nguyên các giá trị sao chép từ JSON, JWT hay đầu ra của terminal. Việc chuyển đổi thực hiện trên các byte đã giải mã: kết quả là hex của dữ liệu, không phải của bản thân các ký tự Base64. Để xem mã hex của một đoạn văn bản, hãy dùng công cụ Base16.
# Shell
printf '%s' "$B64" | base64 --decode | xxd -p
# Python
base64.b64decode(s).hex()
// Node.js
Buffer.from(s, 'base64').toString('hex')
Câu hỏi thường gặp
Công cụ chuyển đổi chính văn bản Base64 hay các byte mà nó biểu diễn?
Vì sao kết quả hex dài hơn chuỗi Base64 đầu vào?
Hex cần 2 ký tự cho mỗi byte, còn Base64 chỉ cần khoảng 1,33 ký tự. Một giá trị băm SHA-256 dài 32 byte có 44 ký tự ở dạng Base64 và 64 ký tự ở dạng hex.
Làm sao để có hex chữ hoa hoặc phân cách bằng dấu hai chấm?
Có chuyển được giá trị Base64URL từ JWT hoặc JSON Web Key không?
Có. Các ký tự an toàn cho URL và phần đệm bị thiếu đều được xử lý tự động, nên bạn có thể dán nguyên tham số khóa và chữ ký mà không cần sửa gì.