Công Cụ Chuyển Đổi Base32, Base58 và Ascii85
Mã hóa văn bản hoặc byte thô thành Base32, Base58, Ascii85 hoặc Z85, hoặc giải mã bất kỳ kiểu nào trong số đó, với bảng chữ cái và quy tắc đệm riêng của từng kiểu. Bảng cách tính cho thấy các byte đầu tiên biến thành ký tự ra sao. Base64 do Công Cụ Mã Hóa & Giải Mã Văn Bản đảm nhiệm. Chạy trong trình duyệt của bạn; không có gì được tải lên.
Các chữ cái A–Z và chữ số 2–7, mỗi ký tự năm bit, được đệm bằng = đến bội số của tám ký tự. Khi giải mã, chữ hoa và chữ thường không quan trọng.
Cách tính
Các byte được viết thành bit và cắt thành nhóm năm. Mỗi nhóm là một số từ 0 đến 31 và chọn một ký tự.
| Bit | Giá trị | Ký tự |
|---|---|---|
| 01001 | 9 | J |
| 00001 | 1 | B |
| 10010 | 18 | S |
| 10110 | 22 | W |
| 11000 | 24 | Y |
| 11011 | 27 | 3 |
| 00011 | 3 | D |
| 01111 | 15 | P |
| 00101 | 5 | F |
| 10000 | 16 | Q |
| 10000 | 16 | Q |
| 00101 | 5 | F |
| 01110 | 14 | O |
| 11011 | 27 | 3 |
| 11011 | 27 | 3 |
| 10010 | 18 | S |
Đang hiển thị 16 hàng đầu tiên.
Cách Sử Dụng Công Cụ Chuyển Đổi Base Encoding
- 1. Chọn một kiểu mã hóa. Base32, Base32 với bảng chữ cái hex mở rộng, Base58 với bảng chữ cái Bitcoin, Ascii85 như Adobe dùng, hoặc Z85. Một ghi chú dưới menu mô tả kiểu bạn đã chọn.
- 2. Cho biết dữ liệu là gì. Văn bản được đọc theo byte UTF-8. Các byte hex cho phép bạn mã hóa dữ liệu nhị phân tùy ý, chẳng hạn một khóa, bằng cách gõ dưới dạng từng cặp như
86 4f d2 6f. - 3. Mã hóa hoặc giải mã. Mã hóa cho ra văn bản gồm các ký tự trong bảng chữ cái của kiểu mã hóa đó. Giải mã biến nó trở lại thành byte, hiển thị dưới dạng văn bản hoặc hex. Khoảng trắng và ngắt dòng trong đầu vào sẽ bị bỏ qua.
- 4. Kiểm tra các tùy chọn. Base32 có thể viết kèm hoặc không kèm đệm
=. Ascii85 có thể được bọc trong<~và~>, và có thể viết bốn byte số 0 thànhz.
Các Kiểu Mã Hóa Này Dùng Để Làm Gì
Không kiểu nào trong số này là mã hóa bảo mật. Mỗi kiểu biến byte — có thể không in được — thành văn bản có thể dán vào email, URL, mã QR hay tệp cấu hình, và bất kỳ ai biết tên kiểu mã hóa đều có thể đảo ngược nó. Chúng khác nhau ở bảng chữ cái dùng và ở mức độ văn bản dài hơn dữ liệu.
| Kiểu mã hóa | Ký tự | Độ dài so với byte | Hello, World thành |
|---|---|---|---|
| Base32 (RFC 4648) | 32 | dài gấp 8 ÷ 5 | JBSWY3DPFQQFO33SNRSA==== |
| Base32 hex mở rộng | 32 | dài gấp 8 ÷ 5 | 91IMOR3F5GG5ERRIDHI0==== |
| Base58 (Bitcoin) | 58 | khoảng 1,37 lần | 2NEpo7TZsLBYdvo5V |
| Ascii85 (Adobe) | 85 | dài gấp 5 ÷ 4 | <~87cURD_*#4DfTZ)~> |
| Z85 (ZeroMQ) | 85 | dài gấp 5 ÷ 4 | nm=QNz.92jz/PV8 |
Base32
Base32 cắt các byte thành nhóm 5 bit và viết mỗi nhóm thành một trong 32 ký tự, A–Z và 2–7. Nó chỉ dùng các chữ số từ 2 đến 7, bỏ 0, 1 và 8 vì chúng giống O, I và B, và nó không phân biệt chữ hoa chữ thường, nên người ta có thể đọc to hoặc gõ lại. Dấu đệm = làm tròn độ dài đến bội số của tám. RFC 4648 đưa ra các vectơ kiểm tra như foobar → MZXW6YTBOI======. Mã bí mật của ứng dụng xác thực và địa chỉ onion của Tor đều là Base32.
Base58
Base58 coi toàn bộ đầu vào là một số lớn và viết nó trong cơ số 58, bỏ qua 0, O, I, l cùng các ký hiệu + và /, để kết quả có thể được sao chép bằng nhấp đúp và khó đọc nhầm. Mỗi byte số 0 đứng đầu được viết thành ký tự đầu tiên, 1. Bảng chữ cái Bitcoin chỉ là một trong nhiều bảng chữ cái Base58; các bảng được Ripple và Flickr dùng sắp xếp các ký tự theo cách khác, nên hãy kiểm tra dữ liệu của bạn dùng bảng nào. Địa chỉ Bitcoin thêm một mã kiểm tra và byte phiên bản lên trên, theo một cơ chế gọi là Base58Check, mà công cụ này không tính.
Ascii85 và Z85
Cả hai đều đọc bốn byte như một số 32 bit và viết nó thành năm chữ số cơ số 85, đó là lý do chúng chỉ dài hơn dữ liệu khoảng 25 phần trăm. Ascii85 của Adobe, dùng trong PostScript và PDF, dùng các ký tự từ ! đến u, rút gọn bốn byte số 0 thành z và thường bọc dữ liệu trong <~ và ~>. Nhóm cuối gồm một đến ba byte cho thêm một ký tự so với số byte có. Z85, được định nghĩa trong RFC 32 của ZeroMQ, dùng một bảng chữ cái 85 ký tự khác được chọn để tránh dấu nháy và dấu gạch chéo ngược trong mã nguồn, không có cách rút gọn z và không có nhóm cuối ngắn, nên đầu vào của nó phải là bội số của bốn byte. Ví dụ trong đặc tả của nó là tám byte 86 4f d2 6f b5 59 f7 5b, mã hóa thành HelloWorld. Các bảng chữ cái cơ số 85 khác vẫn tồn tại, chẳng hạn bảng trong RFC 1924 mà Git dùng, nên hãy khớp bảng chữ cái với nguồn của bạn.
Câu Hỏi Thường Gặp
- Base32 hay Base58 có phải là mã hóa bảo mật không?
- Không. Chúng là các kiểu mã hóa biểu diễn: bất kỳ ai cũng có thể đảo ngược, vì bảng chữ cái và quy tắc đều công khai. Chúng làm dữ liệu in được và dễ sao chép hơn, chứ không làm nó bí mật.
- Vì sao Base58 bỏ qua một số ký tự?
- Để tránh các ký tự dễ nhầm và các ký hiệu. Nó bỏ 0 (số không), O (chữ o hoa), I (chữ i hoa) và l (chữ L thường), vì chúng có thể bị nhầm trong nhiều phông chữ, và + và /, vì chúng làm hỏng việc chọn bằng nhấp đúp. Còn lại 58 ký tự.
- Làm thế nào để giải mã một chuỗi Base32?
- Chọn Base32, chuyển sang Giải mã và dán chuỗi vào. Chữ hoa hay chữ thường đều được, và các dấu = ở cuối là tùy chọn. Nếu bạn nhận được lỗi nêu tên các ký tự, chuỗi có thể là Base32 hex mở rộng, Base64 hoặc một kiểu mã hóa khác.
- Khác nhau giữa Ascii85 và Z85 là gì?
- Cả hai dùng năm ký tự cho bốn byte, nhưng bảng chữ cái của chúng khác nhau. Ascii85 dùng các ký tự từ ! đến u, có cách rút gọn z cho các số 0 và có thể có <~ và ~> bao quanh. Z85 dùng một bảng chữ cái an toàn cho mã nguồn và không có cách rút gọn nào.
- Vì sao Z85 báo rằng tôi cần bội số của bốn byte?
- Đặc tả Z85 không định nghĩa đệm. Dữ liệu của nó phải là số nguyên lần nhóm 4 byte, và văn bản của nó phải là bội số của năm ký tự. Hãy tự thêm byte, hoặc dùng Ascii85, kiểu có xử lý nhóm cuối ngắn.
- Làm thế nào để mã hóa một chuỗi Base64?
- Trang này không làm Base64. Công Cụ Mã Hóa & Giải Mã Văn Bản chuyển văn bản sang Base64, URL và thực thể HTML rồi ngược lại, còn Mật Mã XOR có thể hiển thị các byte hex dưới dạng Base64.