Cách sử dụng
- Chọn Mã hóa để chuyển văn bản sang z-base-32, hoặc Giải mã để chuyển z-base-32 trở lại thành văn bản.
- Giữ nguyên biến thể z-base-32 đã chọn và đảm bảo Phần đệm đang tắt, vì định dạng này không dùng phần đệm.
- Nhập hoặc dán dữ liệu đầu vào, hoặc mở một tệp. Kết quả được cập nhật ngay khi bạn gõ.
- Sao chép kết quả hoặc tải xuống dưới dạng tệp.
z-base-32 là gì?
z-base-32 là một kiểu mã hóa Base32 do Zooko Wilcox-O'Hearn thiết kế để con người dễ đọc, viết và nói hơn. Cơ chế giống hệt Base32 RFC 4648: mỗi ký tự mang 5 bit và 5 byte trở thành 8 ký tự. Điểm khác biệt nằm ở bảng ký tự:
ybndrfg8ejkmcpqxot1uwisza345h769
Bảng ký tự hoàn toàn là chữ thường và loại bỏ 0, 2, l và v, vốn dễ bị nhầm với o, z, 1 và u. Các ký tự cũng được sắp xếp lại, nên đầu ra z-base-32 trông hoàn toàn khác với Base32 tiêu chuẩn của cùng các byte và bộ giải mã RFC 4648 không đọc được.
Không có phần đệm: độ dài dữ liệu được suy ra từ độ dài của chuỗi. Đặc tả cũng có thể mã hóa các chuỗi bit không tròn byte khi hai bên thống nhất về độ dài; công cụ này luôn làm việc với các byte nguyên vẹn.
z-base-32 được dùng ở đâu
- OpenPGP Web Key Directory (WKD). Để công bố khóa tại một URL cố định (well-known), phần cục bộ của địa chỉ email được chuyển thành chữ thường và băm bằng SHA-1, rồi giá trị băm 20 byte được mã hóa z-base-32 thành tên tệp dài 32 ký tự.
- ZRTP. Chuỗi xác thực ngắn mà hai người gọi đọc to cho nhau để phát hiện tấn công xen giữa (man-in-the-middle) có thể được biểu diễn dưới dạng Base32 với bảng ký tự z-base-32 (RFC 6189).
- Lightning Network. Các phần mềm nút như lnd và Core Lightning trả về thông điệp đã ký dưới dạng chuỗi z-base-32.
Với các định dạng thân thiện với con người khác, hãy so sánh Crockford Base32, vốn giữ các chữ số theo thứ tự và chấp nhận lỗi gõ, và Base58, ngắn hơn nhưng phân biệt chữ hoa chữ thường.
Đặc tả
| Bảng ký tự | ybndrfg8ejkmcpqxot1uwisza345h769 |
|---|---|
| Kích thước đầu ra | 8 ký tự cho mỗi 5 byte (160%) |
| Phần đệm | Không có |
| Tiêu chuẩn | z-base-32 (Zooko Wilcox-O'Hearn) |
| Phân biệt hoa thường | Không |
Ví dụ
| Đầu vào (UTF-8) | Đầu ra |
|---|---|
Hello, World! | jb1sa5dxfoofq551pt1nn |
Base64.is | ejozg3jsgozg1ha |
你好 | h164b3pfzw |
Câu hỏi thường gặp
z-base-32 có giống Base32 không?
Không. Nó dùng cùng cách chia nhóm 5 bit như Base32 RFC 4648, nhưng với một bảng ký tự khác đã được sắp xếp lại và không có phần đệm. Chuỗi z-base-32 phải được giải mã bằng bộ giải mã z-base-32.
z-base-32 có phân biệt chữ hoa chữ thường không?
Bảng ký tự là chữ thường và đầu ra luôn là chữ thường. Bộ giải mã này cũng chấp nhận đầu vào chữ hoa và chuyển nó sang chữ thường trước khi giải mã.
Nếu chuỗi của tôi kết thúc bằng các dấu = thì sao?
z-base-32 không dùng phần đệm, nhưng nếu một chuỗi kết thúc bằng các dấu = thì bộ giải mã chỉ đơn giản bỏ qua chúng.
Làm sao để có mã băm WKD?
--with-wkd-hash.