Chuyển đến nội dung

A–Z a–z 0–9 + / = · base64url

Trình mã hóa và giải mã Base64

Base64 ghi các byte thành văn bản bằng 64 ký tự in được: 5 byte của "Hello" thành SGVsbG8=. Nhập văn bản hoặc chọn một tệp để mã hóa, hoặc dán Base64 để chuyển lại thành văn bản hoặc tệp tải xuống.

Mọi thứ chạy ngay trong thẻ này và không có gì được tải lên. Base64 là một phép mã hóa dạng biểu diễn, không phải mã hóa bảo mật: ai cũng có thể chuyển ngược lại.

Scanned by NortonTM Safe Web

Tóm tắt nhanh

Giá
Không mất phí
Tài khoản
Không cần
Chuẩn
RFC 4648 (Base64 và Base64url), RFC 2045 (MIME), RFC 2397 (data URI)
Thay đổi kích thước
4 ký tự cho mỗi 3 byte
Giới hạn
10 MB cho một văn bản hoặc một tệp
Tải lên
Không — văn bản và tệp ở lại trong thẻ trình duyệt của bạn

Ví dụ về Base64

Mọi giá trị bên dưới đều do trình mã hóa trên trang này tạo ra. Văn bản được mã hóa thành UTF-8 trước.

Văn bản trong Base64 và Base64url
Văn bảnBase64Base64url không đệmKích thước UTF-8
HelloSGVsbG8=SGVsbG85 B
Hello, World!SGVsbG8sIFdvcmxkIQ==SGVsbG8sIFdvcmxkIQ13 B
GrüßeR3LDvMOfZQ==R3LDvMOfZQ7 B
€4oKs4oKs3 B
FB FF+/8=-_82 B
Vectơ kiểm thử từ RFC 4648
Đầu vàoBase64Độ dàiKý tự đệm
fZg==42
foZm8=41
fooZm9v40
foobZm9vYg==82
foobaZm9vYmE=81
foobarZm9vYmFy80

Cách mã hóa và giải mã Base64

1

Chọn chiều chuyển đổi

Chọn Mã hóa để biến văn bản hoặc tệp thành Base64, hoặc Giải mã để biến Base64 về bản gốc. Nút Hoán đổi chuyển kết quả sang chiều còn lại.

2

Nhập dữ liệu

Nhập hoặc dán văn bản, hoặc thả một tệp tối đa 10 MB. Khi giải mã, hãy dán Base64 theo bảng chữ cái chuẩn hoặc URL-safe, có hoặc không có đệm =, hoặc một data URI.

3

Sao chép kết quả

Sao chép hoặc tải kết quả xuống. Nếu các byte giải mã không phải văn bản, trang hiện những byte đầu ở dạng hex, nêu loại tệp khi nhận ra được, và cho bạn lưu các byte thành một tệp.

Base64 hoạt động thế nào

Base64 (RFC 4648) chia đầu vào thành các nhóm 3 byte, tức 24 bit, và ghi mỗi nhóm thành 4 ký tự, mỗi ký tự 6 bit, lấy từ bảng chữ cái 64 ký tự: A–Z, a–z, 0–9, + và /. Vì vậy kết quả lớn hơn đầu vào khoảng một phần ba. Khi đầu vào không phải bội số của 3 byte, các dấu = đệm phần cuối cho đủ bội số của 4 ký tự, nên 5 byte của Hello cho ra 8 ký tự kết thúc bằng một dấu =.

Base64url, được định nghĩa trong cùng RFC, thay + bằng - và / bằng _ để văn bản an toàn trong URL hoặc tên tệp, và các định dạng như JWT bỏ phần đệm =. Trang này đọc được cả hai bảng chữ cái, có hoặc không có đệm, và bỏ qua dấu cách và dấu xuống dòng. Văn bản được chuyển sang UTF-8 trước, nên € thành 3 byte E2 82 AC và 4oKs trong Base64. Giới hạn là 10 MB cho một văn bản hoặc một tệp.

Câu hỏi về Base64

Làm sao để mã hóa văn bản sang Base64?

Nhập hoặc dán văn bản ở chế độ Mã hóa. Base64 hiện ra khi bạn gõ: Hello cho ra SGVsbG8=. Văn bản được ghi thành UTF-8 trước, nên ký tự ngoài ASCII dùng nhiều hơn một byte: € là 3 byte và cho ra 4oKs.

Base64 và Base64url khác nhau thế nào?

Base64url đổi hai ký tự: - thay cho + và _ thay cho /. Các byte FB FF là +/8= trong Base64 và -_8= trong Base64url. Dạng URL-safe dành cho URL, tên tệp và JWT, và thường bỏ phần đệm =.

Vì sao Base64 kết thúc bằng các dấu =?

Đó là phần đệm. Base64 làm việc theo nhóm 3 byte và 4 ký tự. Nếu nhóm cuối có 1 byte, hai dấu = lấp đầy: f cho ra Zg==. Nếu có 2 byte, một dấu = lấp đầy: fo cho ra Zm8=. Bội số của 3 byte thì không cần: foo cho ra Zm9v.

Base64 có phải là mã hóa bảo mật không?

Không. Base64 là một phép mã hóa dạng biểu diễn có thể đảo lại, không có khóa, nên ai cũng giải mã được và nó không bảo vệ dữ liệu. Nó giúp dữ liệu nhị phân đặt vào văn bản như email, JSON, XML hoặc data URI một cách an toàn.

Base64 làm dữ liệu của tôi lớn thêm bao nhiêu?

Lớn thêm khoảng một phần ba: cứ 3 byte thành 4 ký tự, nên 3000 byte cho ra 4000 ký tự. Ngắt dòng mỗi 76 ký tự (MIME, RFC 2045) hoặc mỗi 64 ký tự (PEM, RFC 7468) làm tăng thêm một chút.

Vì sao khi giải mã lại báo các byte không phải văn bản UTF-8 hợp lệ?

Bản thân Base64 không sai, nhưng các byte bên trong không phải văn bản. Chúng có thể là một ảnh, một tệp nén hoặc một định dạng nhị phân khác. Khi đó trang hiện 64 byte đầu ở dạng hex, nêu loại tệp nếu nhận ra được, và cho tải các byte xuống.