Ngôn ngữ: Tiếng Việt

tools / base64

base64/

Chuyển văn bản, tệp và ảnh sang Base64 và ngược lại. Dùng UTF-8, hỗ trợ dạng URL-safe.

Văn bản gốc

Base64

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

Giải mã báo "Chứa ký tự không thuộc Base64" hoặc "Độ dài không hợp lệ" thì phải làm sao

Trước hết hãy kiểm tra nội dung đã đầy đủ và sạch chưa. Các ký tự được nhận dạng là A–Z, a–z, 0–9, + và /, cùng - và _ của dạng URL-safe; dấu = chỉ được nằm ở cuối. Dấu cách, xuống dòng và phần data:...;base64, ở đầu sẽ được bỏ qua tự động. Ký tự toàn chiều rộng, dấu ngoặc kép và phần còn sót của mã hóa URL như %2B sẽ báo "Chứa ký tự không thuộc Base64", còn "Độ dài không hợp lệ" thường là do thiếu ký tự khi sao chép.

Giải mã xong báo "Nội dung không phải văn bản UTF-8" hoặc kết quả bị loạn chữ thì phải làm sao

Nghĩa là các byte sau khi giải mã không phải văn bản UTF-8. Nguyên nhân thường gặp là văn bản gốc dùng bảng mã khác như GBK, hoặc nội dung vốn là dữ liệu nhị phân như ảnh, tệp nén, dữ liệu đã mã hóa. Công cụ này chỉ hiển thị văn bản UTF-8 và sẽ không ép bảng mã khác thành ký tự loạn. Với dữ liệu nhị phân, bấm "Tải xuống tệp" để lưu; văn bản GBK cần được chuyển đổi bằng công cụ có hỗ trợ GBK.

Vì sao kết quả mã hóa khác với kết quả tính bằng JS, Python hay dòng lệnh

Nguyên nhân hay gặp nhất là ký tự xuống dòng ở cuối hoặc bảng mã khác nhau. Công cụ này mã hóa nguyên văn nội dung trong ô nhập theo UTF-8, không cắt dấu cách và xuống dòng ở đầu cuối, trong khi echo trên dòng lệnh mặc định thêm một ký tự xuống dòng ở cuối, phải dùng echo -n thì kết quả mới khớp. Với tiếng Việt có dấu và emoji, hãy chắc chắn bên kia cũng dùng UTF-8: btoa của JavaScript xử lý trực tiếp sẽ báo lỗi, còn trong Python phải encode('utf-8') rồi mới b64encode.

Có bỏ được dấu = ở cuối không, "URL-safe" là gì

Khi giải mã, thiếu dấu = cũng không sao, công cụ sẽ tự bổ sung; còn khi gửi đi có bỏ được hay không thì tùy bên nhận, một số thư viện bắt buộc phải giữ. Chế độ "URL-safe" đổi + thành -, / thành _ và bỏ dấu = ở cuối, phù hợp để đưa vào tham số URL hoặc tên tệp; JWT dùng đúng cách viết này. Khi giải mã, - và _ được nhận dạng tự động, không cần chuyển chế độ.

Chuyển tệp sang Base64 có giới hạn dung lượng không

Có. Mỗi tệp tối đa 20 MB, vượt quá sẽ báo tệp quá lớn. Kết quả mặc định là Data URL có tiền tố dạng data:image/png;base64, dùng thẳng được trong địa chỉ ảnh của trang web hoặc CSS; nếu chỉ cần Base64 thuần, hãy xóa phần từ đầu đến hết dấu phẩy. Base64 làm dữ liệu nặng thêm khoảng một phần ba, nên không nên nhúng ảnh lớn.

Làm sao để đổi Base64 trở lại thành ảnh hoặc tệp

Chuyển sang "Giải mã", rồi dán Base64 hoặc Data URL đầy đủ. Nếu nhận ra là ảnh (PNG, JPEG, GIF, WebP) thì sẽ hiện bản xem trước, văn bản được hiển thị trực tiếp, dữ liệu nhị phân khác chỉ hiện dung lượng. Dù là loại nào, bạn cũng có thể bấm "Tải xuống tệp" để lưu: ảnh được đặt tên theo định dạng, còn lại đều lưu thành decoded.bin, cần thì tự đổi lại phần mở rộng.

Base64 có phải là mã hóa bảo mật không, có dùng để giữ bí mật được không

Không. Base64 chỉ là cách biểu diễn các byte bằng ký tự in được, ai cũng khôi phục được, không có khóa và không có tác dụng bảo mật. Cần giữ bí mật thì hãy dùng thuật toán mã hóa thực sự như AES.

Văn bản và tệp tôi nhập có bị tải lên không

Không. Việc mã hóa và giải mã đều diễn ra trong trình duyệt, tệp bạn chọn cũng chỉ được đọc trên máy của bạn, không gửi lên máy chủ.