Bài học codec · Base32

Base32: biểu diễn byte bằng alphabet 32 ký hiệu

Base32 dùng A–Z viết hoa và số 2–7. Alphabet tránh các số dễ nhầm 0, 1, 8 và 9, nhưng kết quả dài hơn Base64.

Chuẩn · RFC 4648 Khả năng khôi phục: Chính xác với Base32 canonical có padding và byte decode thành UTF-8 hợp lệ.
Mục tiêu bài học

Nhận diện Base32 theo RFC 4648, giải thích padding và kiểm tra Base32 canonical trước khi decode thành UTF-8.

Encode Keyboard nhóm bit UTF-8 thành giá trị năm bit, ánh xạ vào alphabet Base32 của RFC 4648 rồi thêm = cho đủ block tám ký tự.

01

Encode Keyboard xử lý như thế nào

1

Đổi text thành UTF-8

Mọi ký tự, gồm tiếng Việt và emoji, đều bắt đầu từ dãy byte.

2

Đọc mỗi lần năm bit

Mỗi giá trị từ 0 đến 31 chọn một ký hiệu A–Z hoặc 2–7.

3

Yêu cầu block canonical

Decode chỉ nhận ký hiệu chữ hoa và padding cuối khi re-encode cho đúng cùng giá trị và byte tạo được UTF-8 hợp lệ.

02

Ví dụ từng bước

Đầu vàoHi
Kết quảJBUQ====

Hai byte input để lại nhóm năm bit chưa đủ, nên cần bốn dấu = để hoàn thành block tám ký tự.

03

Nên dùng khi

  • Học encoding từ nhị phân sang text
  • Đọc giá trị được mô tả rõ là Base32 RFC 4648
  • Chia sẻ text không nhạy cảm bằng alphabet ổn định về hoa thường
04

Kiểm tra hợp lệ và lỗi thường gặp

  • Chỉ dùng A–Z viết hoa và số 2–7
  • Chỉ đặt = ở cuối với đúng số lượng canonical
  • Tổng độ dài canonical phải chia hết cho tám
05

Thực hành trong trình duyệt

Công cụ dùng đúng quy tắc đã mô tả của app và chỉ chạy trong tab này.

Base32Công cụ dùng đúng quy tắc đã mô tả của app và chỉ chạy trong tab này.
Kết quả

Công cụ dùng đúng quy tắc đã mô tả của app và chỉ chạy trong tab này.

06

Kiểm tra nhanh

Những chữ số nào thuộc alphabet Base32 trong RFC 4648?