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.
Đã hoàn thành trong trình duyệt này
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ự.
Encode Keyboard xử lý như thế nào
Đổ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.
Đọ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.
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ệ.
Ví dụ từng bước
HiJBUQ====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ự.
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
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
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.