Tan Phat Media

Base64 Encoder - Mã Hóa Base64 Online

Mã hóa và giải mã Base64

Văn bản gốc
Base64
Kết quả sẽ hiển thị ở đây...
💡 Base64 là gì?

Base64 là phương pháp mã hóa dữ liệu nhị phân thành chuỗi ASCII. Thường dùng để:

  • Nhúng hình ảnh vào HTML/CSS (Data URI)
  • Truyền dữ liệu qua URL hoặc API
  • Lưu trữ dữ liệu trong JSON

Hợp tác ngay với Tấn Phát Digital

Chúng tôi không chỉ thiết kế website, mà còn giúp doanh nghiệp xây dựng thương hiệu số mạnh mẽ. Cung cấp dịch vụ thiết kế website trọn gói từ thiết kế đến tối ưu SEO. Hãy liên hệ ngay với Tấn Phát Digital để cùng tạo nên những giải pháp công nghệ đột phá, hiệu quả và bền vững cho doanh nghiệp của bạn tại Hồ Chí Minh.

Mã hóa và giải mã Base64: cách nó hoạt động, xử lý tiếng Việt và những chỗ hay sai

Công cụ chuyển văn bản sang chuỗi Base64 và ngược lại, xử lý đúng tiếng Việt có dấu nhờ quy đổi qua UTF-8 trước khi mã hóa. Có nút đảo chiều để lấy kết quả vừa ra làm đầu vào cho lượt sau, và báo lỗi rõ ràng khi chuỗi Base64 bạn dán vào không hợp lệ.

Tính năng nổi bật

  • Mã hóa văn bản bất kỳ sang Base64, giữ nguyên dấu tiếng Việt nhờ quy đổi qua UTF-8
  • Giải mã chuỗi Base64 trở lại văn bản gốc
  • Hai thẻ tách bạch chiều mã hóa và chiều giải mã, không bấm nhầm
  • Nút đảo chiều đưa kết quả sang ô nhập để làm tiếp lượt ngược lại
  • Báo lỗi rõ khi chuỗi Base64 không hợp lệ thay vì trả về ký tự rác
  • Sao chép kết quả một chạm
  • Nhận văn bản nhiều dòng, phù hợp với JSON, chuỗi cấu hình hay khóa dạng văn bản
  • Chạy hoàn toàn trên trình duyệt, nội dung không được gửi lên máy chủ

Base64 sinh ra để giải quyết vấn đề gì

Rất nhiều kênh truyền dữ liệu chỉ chấp nhận ký tự văn bản chứ không chấp nhận dữ liệu nhị phân thô: thư điện tử, phần thân của một số giao thức cũ, tham số trên đường dẫn, giá trị trong tệp JSON hay XML. Nếu bạn nhét thẳng một tệp ảnh vào đó, những byte đặc biệt như byte 0 hay ký tự xuống dòng sẽ bị hiểu nhầm và làm hỏng cả thông điệp. Base64 giải quyết bằng cách viết lại dữ liệu chỉ bằng 64 ký tự an toàn mà mọi hệ thống đều xử lý được. Đổi lại, dữ liệu phình lên khoảng một phần ba. Vì vậy Base64 không phải để nén, không phải để bảo mật, mà chỉ để dữ liệu đi qua được một đường ống vốn chỉ cho văn bản chạy qua. Hiểu đúng mục đích này giúp bạn tránh hai lỗi thường gặp nhất: dùng Base64 để giấu thông tin nhạy cảm, và nhúng tệp lớn vào trang web rồi thắc mắc vì sao trang nặng lên.

Lợi ích khi sử dụng

  • Đọc được ngay nội dung thật của một chuỗi Base64 trong log hay trong cấu hình
  • Tạo chuỗi Base64 để dán vào JSON, YAML hay biến môi trường mà không lo ký tự đặc biệt
  • Xử lý đúng tiếng Việt có dấu, thứ mà nhiều đoạn mã tự viết hay làm hỏng
  • Kiểm chứng kết quả bằng cách đảo chiều ngay trong cùng màn hình
  • Nội dung nhạy cảm không rời khỏi máy vì mọi phép tính chạy trên trình duyệt

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

  1. 1Chọn thẻ Encode nếu muốn đổi văn bản sang Base64, hoặc thẻ Decode nếu muốn đọc lại chuỗi Base64.
  2. 2Dán nội dung vào ô bên trái, có thể là nhiều dòng, có dấu tiếng Việt hay ký tự đặc biệt đều được.
  3. 3Bấm nút chuyển đổi, kết quả hiện ở ô bên phải.
  4. 4Nếu nhận thông báo chuỗi Base64 không hợp lệ, kiểm tra xem chuỗi có bị thiếu ký tự, dính khoảng trắng, hay đang ở dạng base64url với ký tự gạch ngang và gạch dưới.
  5. 5Bấm sao chép để lấy kết quả, hoặc bấm nút đảo chiều để đưa kết quả sang ô nhập và chạy lượt ngược lại kiểm chứng.

Base64 hoạt động thế nào: ba byte thành bốn ký tự

Cơ chế rất gọn. Dữ liệu được đọc theo từng nhóm ba byte, tức 24 bit, rồi chia lại thành bốn nhóm sáu bit. Mỗi nhóm sáu bit có giá trị từ 0 tới 63 và được tra sang một ký tự trong bảng gồm 26 chữ hoa, 26 chữ thường, 10 chữ số, cùng hai ký tự cộng và gạch chéo. Vì ba byte thành bốn ký tự nên chuỗi kết quả dài hơn dữ liệu gốc đúng một phần ba, chưa kể phần đệm. Khi số byte không chia hết cho ba, phần thiếu được bù bằng ký tự bằng ở cuối: dư một byte thì thêm hai dấu bằng, dư hai byte thì thêm một dấu bằng. Nhờ vậy độ dài chuỗi Base64 luôn là bội số của bốn, và đây cũng là cách kiểm tra nhanh một chuỗi có bị cắt cụt hay không. Ví dụ chữ Hi gồm hai byte cho ra SGk bằng, còn chữ Hi có thêm dấu chấm thành ba byte cho ra SGku không có dấu bằng nào. Một chuỗi Base64 dài 4001 ký tự thì chắc chắn đã bị mất ký tự trên đường truyền.

Base64 không phải mã hóa bảo mật, đây là hiểu nhầm tai hại nhất

Base64 là phép mã hóa dạng biểu diễn chứ không phải mật mã. Không có khóa, không có bí mật, và bất kỳ ai cũng giải ngược được trong một giây bằng đúng công cụ này. Vì vậy đừng bao giờ dùng Base64 để giấu mật khẩu, khóa API, số căn cước hay bất kỳ dữ liệu nào cần bảo mật thật. Một chuỗi Base64 trong mã nguồn công khai là dữ liệu công khai. Điều gây nhầm là Base64 xuất hiện trong nhiều ngữ cảnh liên quan tới bảo mật: xác thực cơ bản của giao thức HTTP gửi tên người dùng và mật khẩu ghép bằng dấu hai chấm rồi mã hóa Base64 trong tiêu đề Authorization, nhưng phần bảo vệ thật ở đó là kết nối HTTPS chứ không phải Base64. Tương tự, hai phần đầu của một JWT được mã hóa Base64 và ai cũng đọc được nội dung; thứ ngăn người khác giả mạo token là chữ ký ở phần thứ ba, không phải lớp Base64. Muốn bảo mật thật thì phải dùng thuật toán mã hóa có khóa như AES, hoặc băm một chiều như Argon2 và bcrypt với mật khẩu.

Base64url và các biến thể khiến chuỗi giải mã bị lỗi

Hai ký tự cộng và gạch chéo trong bảng Base64 gốc gây rắc rối khi đặt trong đường dẫn web, vì dấu cộng bị hiểu là khoảng trắng còn gạch chéo bị hiểu là phân cách thư mục. Vì vậy chuẩn định nghĩa thêm biến thể an toàn cho URL, gọi là base64url, thay dấu cộng bằng gạch ngang và gạch chéo bằng gạch dưới, đồng thời thường bỏ luôn phần đệm dấu bằng ở cuối. JWT dùng đúng biến thể này, và nhiều API cũng vậy. Hệ quả thực tế: nếu bạn dán một chuỗi base64url vào bộ giải Base64 thường, nó có thể báo lỗi hoặc trả ra nội dung sai. Cách xử lý thủ công là thay ngược gạch ngang thành dấu cộng, gạch dưới thành gạch chéo, rồi bù dấu bằng cho tới khi độ dài chia hết cho bốn. Một biến thể nữa hay gặp là Base64 theo chuẩn thư điện tử, chuỗi được ngắt dòng sau mỗi 76 ký tự; khi sao chép loại này, hãy nối các dòng lại hoặc xóa hết ký tự xuống dòng trước khi giải mã, vì ký tự xuống dòng không nằm trong bảng 64 ký tự.

Data URI: khi nào nên nhúng ảnh dưới dạng Base64

Data URI cho phép đặt trực tiếp nội dung tệp vào thuộc tính src hay vào CSS, theo cú pháp gồm chữ data, dấu hai chấm, kiểu MIME, dấu chấm phẩy, chữ base64, dấu phẩy rồi tới chuỗi mã hóa. Lợi ích là bớt một lượt yêu cầu mạng, và tệp chắc chắn có mặt cùng lúc với trang. Cái giá thì rõ: dung lượng tăng khoảng một phần ba, nội dung không được trình duyệt lưu đệm riêng nên mỗi lần tải lại trang là tải lại toàn bộ, và nếu nhúng trong tệp CSS thì nó làm tệp chặn hiển thị phình to. Nguyên tắc thực dụng là chỉ nhúng những tệp rất nhỏ, thường dưới vài kilôbyte, kiểu biểu tượng nhỏ hoặc một hình nền hoa văn lặp lại. Với biểu tượng dạng SVG, cách tốt hơn nữa là nhúng thẳng mã SVG vào HTML hoặc mã hóa theo kiểu phần trăm thay vì Base64, vì SVG là văn bản nên Base64 chỉ làm nó phình ra vô ích. Còn ảnh chụp, ảnh sản phẩm hay bất cứ thứ gì trên vài chục kilôbyte thì luôn nên để thành tệp riêng và bật lưu đệm.

Tiếng Việt, UTF-8 và lý do nhiều đoạn mã tự viết bị lỗi

Hàm mã hóa Base64 có sẵn trong trình duyệt vốn chỉ nhận các ký tự có mã dưới 256, nên gọi thẳng nó với chuỗi tiếng Việt có dấu sẽ báo lỗi. Cách xử lý đúng là quy đổi chuỗi sang chuỗi byte UTF-8 trước rồi mới mã hóa, và khi giải mã thì làm ngược lại. Công cụ này đã làm sẵn cả hai chiều, nên bạn dán tiếng Việt vào là chạy bình thường và giải ra đúng nguyên văn. Vấn đề thường nảy sinh khi bên nhận không dùng UTF-8: bạn gửi đi chuỗi Base64 đúng, họ giải ra và thấy chữ có dấu biến thành các ký tự lạ chồng chéo. Đó không phải lỗi Base64 mà là lỗi bảng mã ở bước sau, và cách sửa là thống nhất UTF-8 cho toàn bộ đường đi của dữ liệu. Mẹo kiểm tra nhanh: một chữ tiếng Việt có dấu chiếm ba byte trong UTF-8, nên chuỗi mười chữ có dấu sẽ cho chuỗi Base64 dài hơn hẳn so với mười chữ không dấu. Nếu độ dài kết quả bằng đúng trường hợp không dấu, gần như chắc chắn chuỗi đầu vào đã bị mất dấu từ trước.

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

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

Không. Đây chỉ là cách biểu diễn lại dữ liệu bằng 64 ký tự an toàn, không có khóa và ai cũng giải ngược được trong một giây. Đừng dùng Base64 để giấu mật khẩu hay khóa API. Muốn bảo mật thật phải dùng mã hóa có khóa như AES, hoặc băm một chiều như bcrypt với mật khẩu.

Vì sao chuỗi Base64 dài hơn dữ liệu gốc?

Vì cứ ba byte dữ liệu được viết lại thành bốn ký tự, nên độ dài tăng khoảng một phần ba, chưa kể phần đệm. Đây là cái giá phải trả để dữ liệu đi qua được những kênh chỉ chấp nhận văn bản. Base64 không nén và không bao giờ làm dữ liệu nhỏ đi.

Dấu bằng ở cuối chuỗi Base64 có ý nghĩa gì?

Đó là phần đệm khi số byte gốc không chia hết cho ba. Dư một byte thì thêm hai dấu bằng, dư hai byte thì thêm một dấu bằng. Nhờ vậy độ dài chuỗi luôn là bội số của bốn, và đây cũng là cách kiểm tra nhanh chuỗi có bị cắt cụt trên đường truyền hay không.

Vì sao chuỗi Base64 của tôi giải mã báo lỗi?

Ba nguyên nhân hay gặp: chuỗi bị thiếu ký tự nên độ dài không chia hết cho bốn, chuỗi dính khoảng trắng hoặc ký tự xuống dòng khi sao chép, hoặc chuỗi đang ở dạng base64url dùng gạch ngang và gạch dưới thay cho dấu cộng và gạch chéo.

Base64url khác Base64 thường thế nào?

Base64url thay dấu cộng bằng gạch ngang, thay gạch chéo bằng gạch dưới và thường bỏ phần đệm dấu bằng, để chuỗi đặt được trong đường dẫn web mà không bị hiểu nhầm. JWT và nhiều API dùng biến thể này. Muốn giải bằng bộ giải thường thì phải thay ngược lại và bù dấu bằng cho đủ bội số bốn.

Công cụ có mã hóa được tệp hình ảnh không?

Không, công cụ này chỉ nhận văn bản dán trực tiếp vào ô nhập, không có chức năng tải tệp lên. Muốn tạo Data URI cho ảnh, bạn cần một công cụ chuyển tệp sang Base64 hoặc dùng chức năng sao chép dưới dạng Data URI có sẵn trong công cụ dành cho nhà phát triển của trình duyệt.

Tiếng Việt có dấu mã hóa Base64 có bị lỗi không?

Không, vì công cụ quy đổi chuỗi sang byte UTF-8 trước khi mã hóa và làm ngược lại khi giải mã. Nếu bên nhận giải ra thấy chữ lạ thì lỗi nằm ở bảng mã phía họ chứ không phải ở Base64, và cách sửa là thống nhất dùng UTF-8 cho toàn bộ đường đi của dữ liệu.

Khi nào nên nhúng ảnh vào HTML bằng Data URI?

Chỉ nên với tệp rất nhỏ, thường dưới vài kilôbyte, như biểu tượng hoặc hình nền hoa văn lặp lại. Với tệp lớn, Data URI làm trang phình ra một phần ba, không được lưu đệm riêng nên tải lại mỗi lần, và nếu nằm trong CSS còn làm chậm bước hiển thị đầu tiên.

Vì sao nội dung JWT ai cũng đọc được?

Vì phần header và payload của JWT chỉ được mã hóa base64url chứ không mã hóa bảo mật. Thứ ngăn người khác sửa nội dung là chữ ký ở phần thứ ba, tạo bằng khóa bí mật của máy chủ. Vì vậy đừng đặt dữ liệu nhạy cảm trong payload của token.

Xác thực cơ bản của HTTP dùng Base64 có an toàn không?

Bản thân lớp Base64 không bảo vệ gì cả, tên người dùng và mật khẩu ghép bằng dấu hai chấm rồi mã hóa vẫn đọc ngược được ngay. Thứ bảo vệ thật là kết nối HTTPS. Dùng xác thực cơ bản trên kết nối không mã hóa đồng nghĩa với gửi mật khẩu ở dạng gần như công khai.

Chuỗi Base64 bị xuống dòng thì xử lý sao?

Đó là kiểu Base64 dùng trong thư điện tử, ngắt dòng sau mỗi 76 ký tự. Ký tự xuống dòng không nằm trong bảng 64 ký tự nên bộ giải sẽ báo lỗi. Hãy nối các dòng lại thành một chuỗi liền trước khi dán vào ô giải mã.

Nội dung tôi dán vào có bị gửi đi đâu không?

Không. Việc mã hóa và giải mã dùng các hàm có sẵn của trình duyệt và chạy hoàn toàn trên máy bạn, không có yêu cầu mạng nào được tạo ra. Dù vậy vẫn nên nhớ Base64 không bảo mật, nên đừng coi việc mã hóa ở đây là cách bảo vệ dữ liệu.

Từ khóa liên quan

  • mã hóa base64 online
  • giải mã base64 online
  • base64 encode decode
  • base64 là gì
  • chuyển văn bản sang base64
  • base64 tiếng việt có dấu
  • base64url là gì
  • data uri base64 ảnh
  • nhúng ảnh vào css base64
  • base64 có bảo mật không
  • giải mã jwt base64
  • http basic auth base64
  • chuỗi base64 không hợp lệ
  • dấu bằng cuối chuỗi base64
  • base64 tăng dung lượng bao nhiêu
  • encode utf-8 trước khi base64
  • btoa atob javascript
  • base64 xuống dòng 76 ký tự
  • chuyển base64 về văn bản
  • công cụ base64 miễn phí

Công cụ Developer Tools liên quan

.env Generator

Tạo file .env và .env.example cho dự án.

.gitignore Generator

Tạo .gitignore cho Node.js, Python, Java.

API Mock Generator

Tạo mock JSON data cho API testing.

API Response Formatter

Format và phân tích API response.

API Tester

Test REST API: GET, POST, PUT, DELETE.

Postman Alternative - API Testing Tool Online với Collections, Environment & File Upload

Postman Alternative miễn phí - Test APIs với Collections, Multiple Environments, Pre-request Scripts, Collection Runner, File Upload (form-data), Tests/Assertions, Code Generation (cURL, JS, Python, Node.js). Browser-based, không cần cài đặt. Save requests, export/import collections, auto-save history. Hỗ trợ Bearer Token, Basic Auth, API Key. Hoàn hảo cho API development và testing.

Swagger API Tester - Test API với OpenAPI/Swagger Spec & Authentication Online

Swagger API Tester miễn phí - Import OpenAPI/Swagger specification và test API endpoints với đầy đủ authentication (Bearer Token/JWT, Basic Auth, API Key). Hỗ trợ OpenAPI 3.0, Swagger 2.0, auto-parse endpoints, parameters, request body. Giao diện như Swagger UI với color-coded methods, grouped endpoints, real-time testing. Hoàn hảo cho API development, testing, debugging secured APIs.

Base Converter

Chuyển đổi Binary, Hex, Base32.

Binary Converter

Chuyển đổi Decimal, Binary, Hex.

Box Shadow Generator

Tạo CSS box-shadow trực quan.

Chmod Calculator

Tính quyền file Linux.

Color Contrast

Kiểm tra WCAG accessibility.

Dịch vụ của Tấn Phát Digital

Đang xây sản phẩm và cần thêm người làm phần nặng?

Gói giải pháp doanh nghiệp

Nền tảng custom cho ngân hàng, y tế và sàn B2B, chuẩn ISO 27001, GDPR, PCI-DSS, SLA 99.99%.

Từ 50.000.000đXem chi tiết →

Dịch vụ phát triển Blockchain & Web3

Smart contract, dApp và NFT marketplace đa chuỗi, audit bảo mật đầy đủ trước khi lên mainnet.

Từ 50.000.000đXem chi tiết →

Dịch vụ thiết kế website tại Hồ Chí Minh

Website doanh nghiệp, bán hàng và đặt lịch, chuẩn SEO ngay từ cấu trúc, tốc độ tải dưới 3 giây.

Từ 5.000.000đXem chi tiết →

Dịch vụ thiết kế landing page

Trang đích riêng cho từng chiến dịch quảng cáo, tỷ lệ chuyển đổi 3–8%, bàn giao trong 5–21 ngày.

Từ 3.000.000đXem chi tiết →

Tư vấn và báo giá miễn phí trong 24 giờ. Xem toàn bộ dịch vụ

Zalo
Facebook
Tấn Phát Digital
Zalo
Facebook