Cách sử dụng
- Nhập bảng ký tự của bạn, hoặc chọn một mẫu có sẵn rồi chỉnh sửa. Mỗi ký tự chỉ được xuất hiện một lần.
- Chọn Phương pháp: Số lớn cho mọi độ dài bảng ký tự, hoặc Nhóm bit cho bảng ký tự gồm 2, 4, 8, 16, 32 hoặc 64 ký tự.
- Với Nhóm bit, bạn có thể nhập thêm một Ký tự đệm không thuộc bảng ký tự.
- Mã hóa văn bản của bạn, hoặc dán một chuỗi được viết bằng bảng ký tự của bạn để giải mã.
Hai cách ánh xạ byte thành ký tự
Số lớn hoạt động giống Base58. Toàn bộ đầu vào được đọc như một số nguyên lớn và được chia liên tiếp cho độ dài của bảng ký tự; mỗi số dư chọn ra một ký tự. Phương pháp này dùng được với mọi bảng ký tự có ít nhất 2 ký tự, chẳng hạn 10, 36, 58 hoặc 62. Các byte 0 ở đầu được viết thành ký tự đầu tiên của bảng ký tự, nên vẫn còn nguyên sau khi mã hóa rồi giải mã lại. Không có phần đệm, và đầu vào bị giới hạn ở khoảng 20 KB vì phép tính trở nên chậm với dữ liệu dài.
Nhóm bit hoạt động giống RFC 4648. Đầu vào được cắt thành các đoạn có số bit cố định: 1 bit với bảng 2 ký tự, 4 bit với bảng 16 ký tự, 5 bit với bảng 32 ký tự và 6 bit với bảng 64 ký tự. Mỗi đoạn là một chỉ số trỏ vào bảng ký tự. Đây chính là cách hex, Base32 và Base64 hoạt động, và độ dài đầu ra chỉ phụ thuộc vào độ dài đầu vào.
Vì sao hai phương pháp cho kết quả khác nhau
Một phương pháp mã hóa giá trị số của dữ liệu, phương pháp kia mã hóa từng bit theo vị trí. Kết quả thường khác nhau, và một chuỗi phải được giải mã bằng đúng phương pháp đã tạo ra nó.
| Bảng ký tự | Đầu vào | Nhóm bit | Số lớn |
|---|---|---|---|
| Base64 tiêu chuẩn | Hi | SGk= | Ehp |
| Base32 RFC 4648 | Hi | JBUQ==== | SDJ |
01 | A | 01000001 | 1000001 |
0123456789 | Hi | không khả dụng | 18537 |
Với Nhóm bit và = làm ký tự đệm, các bảng ký tự tiêu chuẩn tái tạo đúng Base64 và Base32 thông thường. Số lớn bỏ đi bit 0 ở đầu của A vì nó viết một giá trị chứ không phải một số bit cố định. Khi bảng ký tự là mười chữ số, nó chỉ đơn giản hiển thị các byte của Hi dưới dạng một số thập phân.
Ký tự đệm chỉ áp dụng cho Nhóm bit. Đầu ra được đệm cho đủ bội số của 4 ký tự với bảng 64 ký tự, và bội số của 8 với bảng 32 và 8 ký tự. Với bảng 2, 4 hoặc 16 ký tự, mỗi byte luôn lấp đầy trọn các ký tự, nên không bao giờ cần phần đệm.
Quy tắc cho một bảng ký tự hợp lệ
- Có ít nhất hai ký tự.
- Không có ký tự trùng lặp. Bộ giải mã ánh xạ mỗi ký tự trở lại đúng một giá trị. Nếu
avừa đại diện cho 0 vừa cho 10, một chuỗi chứa nó sẽ không thể giải mã được. - Phân biệt chữ hoa và chữ thường.
avàAlà hai ký tự khác nhau. - Ký tự đệm không được nằm trong bảng ký tự, nếu không sẽ không thể phân biệt nó với dữ liệu.
Mọi thứ đều chạy trong trình duyệt của bạn, nên bảng ký tự và dữ liệu của bạn luôn nằm trên thiết bị của bạn.
Khi nào bảng ký tự tùy chỉnh hữu ích
- Làm rối ID. Một bảng ký tự bị xáo trộn biến các mã định danh thành token không có quy luật rõ ràng. Cách này chỉ che giấu chứ không bảo vệ: bất kỳ ai biết bảng ký tự đều có thể giải mã chúng.
- Định dạng độc quyền hoặc cũ. Sao chép bảng ký tự riêng của một hệ thống từ tài liệu của nó và giải mã trực tiếp dữ liệu của hệ thống đó.
- Học tập. So sánh các độ dài bảng ký tự và cả hai phương pháp để hiểu cách chuyển đổi cơ số hoạt động. Với các bảng ký tự cố định, hãy xem Base58 và Base62.
Câu hỏi thường gặp
Số lớn và Nhóm bit khác nhau thế nào?
Số lớn chuyển toàn bộ đầu vào như một số nguyên sang cơ số mới, giống Base58, và dùng được với mọi độ dài bảng ký tự. Nhóm bit chia đầu vào thành các đoạn bit có kích thước cố định, giống Base64, và cần bảng ký tự gồm 2, 4, 8, 16, 32 hoặc 64 ký tự.
Vì sao bảng ký tự Base64 tùy chỉnh của tôi không cho kết quả giống Base64 tiêu chuẩn?
Base64 tiêu chuẩn dùng nhóm bit. Hãy chọn phương pháp Nhóm bit và đặt = làm ký tự đệm để khớp với nó. Phương pháp Số lớn tạo ra một chuỗi hoàn toàn khác dù dùng cùng bảng ký tự.
Vì sao không được dùng ký tự trùng lặp?
Mỗi ký tự phải giải mã ra đúng một giá trị. Một ký tự lặp lại sẽ có hai nghĩa, và dữ liệu gốc không thể được khôi phục một cách đáng tin cậy.
Tôi có thể dùng ký tự đệm với phương pháp Số lớn không?
Không. Đầu ra của Số lớn không có kích thước khối cố định, nên không có gì để đệm. Tùy chọn Ký tự đệm chỉ áp dụng cho Nhóm bit.
Bảng ký tự tùy chỉnh có phải là một hình thức mã hóa bảo mật không?
Không. Nó vẫn chỉ là một kiểu mã hóa không có khóa. Bảng ký tự bị xáo trộn có thể khiến dữ liệu khó nhận ra hơn khi nhìn qua, nhưng không bao giờ nên được dùng để bảo vệ thông tin bí mật.