Công cụ mã hóa và giải mã z-base-32

Chuyển văn bản, byte hex hoặc tệp sang z-base-32 và ngược lại. Bảng ký tự chữ thường của nó loại bỏ các ký tự dễ nhầm lẫn, và đầu ra không cần phần đệm.

Chạy hoàn toàn trong trình duyệt của bạn. Không có gì được tải lên.

Cách sử dụng

  1. 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.
  2. 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.
  3. 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õ.
  4. 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 ra8 ký tự cho mỗi 5 byte (160%)
Phần đệmKhông có
Tiêu chuẩnz-base-32 (Zooko Wilcox-O'Hearn)
Phân biệt hoa thườngKhông

Ví dụ

Đầu vào (UTF-8)Đầu ra
Hello, World!jb1sa5dxfoofq551pt1nn
Base64.isejozg3jsgozg1ha
你好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?
WKD cần giá trị băm SHA-1 của phần cục bộ trong địa chỉ email sau khi chuyển thành chữ thường, và công cụ này không tính giá trị đó. Hãy tính giá trị băm ở nơi khác, dán vào đây làm đầu vào dạng Hex rồi mã hóa. GnuPG cũng có thể in trực tiếp mã băm WKD bằng tùy chọn --with-wkd-hash.