Base64 là một phương pháp mã hóa dữ liệu để biến đổi các dữ liệu nhị phân (binary) thành chuỗi ký tự dạng văn bản ASCII. Kỹ thuật này thường được sử dụng trong các trường hợp truyền tải dữ liệu qua những hệ thống hoặc giao thức chỉ hỗ trợ ký tự văn bản, chẳng hạn như email (SMTP) hoặc các giao thức truyền HTTP.
Base64 không phải là một phương pháp bảo mật, mà chỉ là một cách để mã hóa dữ liệu nhằm làm cho nó dễ dàng truyền tải qua các hệ thống giới hạn ký tự. Đặc điểm của Base64 là mã hóa dữ liệu nhị phân thành chuỗi ký tự gồm các ký tự từ A-Z, a-z, 0-9, cùng với hai ký tự đặc biệt là “+” và “/”.
Base64 hoạt động bằng cách chuyển đổi chuỗi dữ liệu thành các nhóm 24 bit và sau đó chia các nhóm này thành từng cụm 6 bit để mã hóa thành các ký tự ASCII.
Giả sử bạn có chuỗi "ABC"
:
01000001 01000010 01000011
(24 bit)010000
, 010100
, 001001
, 000011
010000
= ‘Q’010100
= ‘U’001001
= ‘J’000011
= ‘D’"ABC"
là "QUJD"
.Quá trình giải mã Base64 diễn ra ngược lại với mã hóa:
Ví dụ: Giải mã "QUJD"
sẽ cho ra chuỗi "ABC"
theo các bước ngược lại.
Base64 được sử dụng phổ biến trong việc truyền tải dữ liệu qua các giao thức mạng như HTTP, email (SMTP). Các tệp hình ảnh, video, âm thanh có thể được chuyển đổi sang chuỗi ký tự Base64 để truyền tải dễ dàng hơn trong các hệ thống chỉ hỗ trợ văn bản.
Base64 cho phép nhúng các tệp hình ảnh, âm thanh hoặc video trực tiếp vào mã HTML hoặc CSS bằng cách chuyển đổi các tệp này thành chuỗi Base64. Điều này hữu ích trong các trường hợp không thể tham chiếu đến tệp từ một máy chủ bên ngoài.
Base64 giúp lưu trữ dữ liệu nhị phân (như hình ảnh hoặc các tệp nhị phân khác) dưới dạng chuỗi văn bản, giúp dễ dàng quản lý và lưu trữ trong các cơ sở dữ liệu không hỗ trợ nhị phân.
Python cung cấp thư viện base64
cho phép bạn dễ dàng thực hiện mã hóa và giải mã Base64.
Ví dụ về mã hóa và giải mã Base64:
import base64 # Mã hóa chuỗi thành Base64 data = "Hello, World!" encoded = base64.b64encode(data.encode('utf-8')) print("Mã hóa:", encoded) # Giải mã từ Base64 decoded = base64.b64decode(encoded).decode('utf-8') print("Giải mã:", decoded)
JavaScript cũng hỗ trợ mã hóa và giải mã Base64 bằng cách sử dụng hàm btoa()
và atob()
.
Ví dụ:
// Mã hóa Base64 let data = "Hello, World!"; let encoded = btoa(data); console.log("Mã hóa:", encoded); // Giải mã Base64 let decoded = atob(encoded); console.log("Giải mã:", decoded);
Base64 là một phương pháp mã hóa dữ liệu hữu ích, giúp chuyển đổi dữ liệu nhị phân thành chuỗi văn bản có thể dễ dàng truyền tải qua các hệ thống hoặc giao thức không hỗ trợ nhị phân. Mặc dù không bảo mật, Base64 vẫn là một công cụ quan trọng trong việc lưu trữ và truyền tải dữ liệu trong các ứng dụng mạng và web.