Công cụ mã hóa và giải mã Base91

Chuyển văn bản, byte hex hoặc tệp sang basE91 và ngược lại. basE91 gói dữ liệu nhị phân vào 91 ký tự ASCII in được và cho đầu ra ngắn hơn Base64 hay Base85.

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 hoặc byte sang basE91, hoặc Giải mã để chuyển basE91 trở lại thành dữ liệu.
  2. Nhập hoặc dán dữ liệu đầu vào, hoặc mở một tệp. Chuyển đầu vào sang Hex nếu là byte thô.
  3. Kết quả được cập nhật ngay khi bạn gõ. Khi giải mã, hãy chọn đầu ra Văn bản hoặc Hex.
  4. Sao chép kết quả hoặc tải xuống dưới dạng tệp.

basE91 là gì?

basE91 là một kiểu mã hóa nhị phân thành văn bản do Joachim Henke thiết kế. Nó dùng 91 trong số 95 ký tự ASCII in được: tất cả trừ dấu cách, dấu nháy đơn ', dấu gạch nối - và dấu gạch chéo ngược \.

Nó không làm việc trên các khối byte cố định. Bộ mã hóa gom các bit đầu vào vào một bộ đệm và mỗi lần lấy ra 13 bit. Nếu giá trị 13 bit lớn hơn 88, nó được viết thành hai ký tự. Nếu giá trị nhỏ hơn hoặc bằng 88, bộ mã hóa lấy thêm bit thứ 14, và kết quả vẫn vừa vì hai ký tự cơ số 91 biểu diễn được 91 × 91 = 8281 giá trị khác nhau. Do đó cứ mỗi 13 hoặc 14 bit sẽ trở thành đúng 2 ký tự.

Kết quả là phần tăng thêm tối đa khoảng 23%, và giảm xuống còn khoảng 14% với dữ liệu có những dãy byte 0 dài. Dữ liệu ngẫu nhiên hoặc đã nén cho kết quả gần với mức trên.

So sánh basE91 với các kiểu mã hóa khác

Kiểu mã hóaSố ký tựKích thước đầu ra
Hex162 × đầu vào
Base5858khoảng 1,37 × đầu vào
Base64641,33 × đầu vào
Base85 / Ascii85851,25 × đầu vào
basE9191khoảng 1,14 đến 1,23 × đầu vào

Để so sánh độ dài đầu ra thực tế với dữ liệu của riêng bạn, hãy nhập dữ liệu vào trang Tất cả kiểu mã hóa.

Những điều cần lưu ý

  • Thoát ký tự. Bảng ký tự có dấu nháy kép ", vốn phải được thoát trong JSON và trong hầu hết các chuỗi ký tự của mã nguồn, cùng với <, > và &, vốn phải được thoát trong HTML và XML. basE91 không an toàn cho URL.
  • Giải mã cả chuỗi. Vì các bit trải dài qua ranh giới giữa các ký tự, một đoạn cắt ra từ giữa chuỗi basE91 không thể được giải mã riêng.
  • Mức độ hỗ trợ. basE91 không phải tiêu chuẩn của IETF. Tác giả công bố các bản triển khai tham chiếu bằng C và các ngôn ngữ khác, và đã có bản chuyển thể cho hầu hết các nền tảng, chẳng hạn gói base91 cho Python.

Đặc tả

Bảng ký tự91 ký tự ASCII in được
Kích thước đầu raKhoảng 123%
Phần đệmKhông có
Tiêu chuẩnbasE91 (Joachim Henke)
Phân biệt hoa thườngCó

Ví dụ

Đầu vào (UTF-8)Đầu ra
Hello, World!>OwJh>}AQ;r@@Y?F
Base64.isxD7gXm^?t#5
你好I_5k7aPE

Câu hỏi thường gặp

basE91 có nhỏ hơn Base64 không?

Có. Base64 luôn làm dữ liệu tăng thêm 33%, còn basE91 tăng thêm tối đa khoảng 23%, và ít hơn với dữ liệu có nhiều byte 0. Với một tệp 1 MB, bạn tiết kiệm được khoảng 100 KB.

basE91 dùng những ký tự nào?
Các chữ cái A-Z và a-z, các chữ số 0-9 và các ký hiệu !#$%&()*+,./:;<=>?@[]^_`{|}~". Dấu cách, dấu nháy đơn, dấu gạch nối và dấu gạch chéo ngược không được dùng.
Vì sao tên được viết là basE91?

Đó là cách tác giả viết tên của nó. basE91 và Base91 chỉ cùng một kiểu mã hóa, và trang này tuân theo thuật toán gốc.

Khoảng trắng có làm hỏng việc giải mã không?

Không. Dấu cách và ký tự xuống dòng không thuộc bảng ký tự, nên bộ giải mã ở đây bỏ qua chúng. Bạn có thể dán trực tiếp văn bản basE91 đã được ngắt dòng.