Mã Hóa Base64

Với công cụ Mã hóa Base64, bạn có thể mã hóa văn bản bạn nhập bằng phương pháp Base64. Nếu muốn, bạn có thể giải mã mã Base64 được mã hóa bằng công cụ Giải mã Base64.

Mã hóa Base64 là gì?

Mã hóa Base64 là một lược đồ mã hóa cho phép truyền dữ liệu nhị phân trên các môi trường chỉ sử dụng một số mã hóa ký tự bị hạn chế (môi trường không phải tất cả các mã ký tự đều có thể được sử dụng, chẳng hạn như xml, html, script, ứng dụng nhắn tin tức thì). Số ký tự trong lược đồ này là 64 và số 64 trong từ Base64 bắt nguồn từ đây.

Tại sao sử dụng mã hóa Base64?

Nhu cầu mã hóa Base64 bắt nguồn từ các vấn đề nảy sinh khi phương tiện được truyền ở định dạng nhị phân thô đến các hệ thống dựa trên văn bản. Bởi vì các hệ thống dựa trên văn bản (chẳng hạn như e-mail) giải thích dữ liệu nhị phân là một loạt các ký tự, bao gồm các ký tự lệnh đặc biệt, hầu hết dữ liệu nhị phân được truyền đến phương tiện truyền tải bị các hệ thống này hiểu sai và bị mất hoặc bị hỏng trong quá trình truyền. tiến trình.

Một phương pháp mã hóa dữ liệu nhị phân như vậy để tránh các sự cố truyền như vậy là gửi chúng dưới dạng văn bản ASCII thuần túy ở định dạng được mã hóa Base64. Đây là một trong những kỹ thuật được tiêu chuẩn MIME sử dụng để gửi dữ liệu không phải là văn bản thuần túy. Nhiều ngôn ngữ lập trình, chẳng hạn như PHP và Javascript, bao gồm các chức năng mã hóa và giải mã Base64 để diễn giải dữ liệu được truyền bằng cách sử dụng mã hóa Base64.

Logic mã hóa Base64

Trong mã hóa Base64, 3 * 8 bit = 24 bit dữ liệu gồm 3 byte được chia thành 4 nhóm 6 bit. Các ký tự tương ứng với các giá trị thập phân giữa [0-64] của 4 nhóm 6 bit này được khớp từ bảng Base64 để mã hóa. Số ký tự thu được do mã hóa Base64 phải là bội số của 4. Dữ liệu được mã hóa không phải là bội số của 4 không phải là dữ liệu Base64 hợp lệ. Khi mã hóa bằng thuật toán Base64, khi quá trình mã hóa hoàn tất, nếu độ dài của dữ liệu không phải là bội số của 4, thì ký tự "=" (bằng) sẽ được thêm vào cuối mã hóa cho đến khi nó là bội số của 4. Ví dụ: nếu chúng ta có dữ liệu được mã hóa Base64 gồm 10 ký tự là kết quả của quá trình mã hóa, thì hai "==" phải được thêm vào cuối.

Ví dụ về mã hóa Base64

Ví dụ: lấy ba số ASCII 155, 162 và 233. Ba số này tạo thành một dòng nhị phân 100110111010001011101001. Một tệp nhị phân chẳng hạn như một hình ảnh chứa một luồng nhị phân hoạt động cho hàng chục hoặc hàng trăm nghìn số không và số một. Bộ mã hóa Base64 bắt đầu bằng cách chia luồng nhị phân thành các nhóm gồm sáu ký tự: 100110 111010 001011 101001. Mỗi nhóm này được dịch thành các số 38, 58, 11 và 41. Luồng nhị phân sáu ký tự được chuyển đổi giữa hệ nhị phân (hoặc cơ bản). 2) đến các ký tự thập phân (cơ số 10) bằng cách bình phương từng giá trị được biểu thị bằng 1 trong mảng nhị phân bằng bình phương vị trí. Bắt đầu từ bên phải và di chuyển sang bên trái và bắt đầu từ 0, các giá trị trong dòng nhị phân đại diện cho 2 ^ 0, sau đó 2 ^ 1, sau đó 2 ^ 2, sau đó 2 ^ 3, sau đó 2 ^ 4, sau đó 2 ^ 5.

Đây là một cách khác để xem xét nó. Bắt đầu từ bên trái, mỗi vị trí có giá trị là 1, 2, 4, 8, 16 và 32. Nếu vị trí có số nhị phân 1, bạn thêm giá trị đó; nếu vị trí có 0, bạn bị thiếu. Mảng nhị phân 100110 biến 38: 0 * 2 ^ 01 + 1 * 2 ^ 1 + 1 * 2 ^ 2 + 0 * 2 ^ 3 + 0 * 2 ^ 4 + 1 * 2 ^ 5 = 0 + 2 thập phân + 4 + 0 + 0 + 32. Mã hóa Base64 lấy chuỗi nhị phân này và chia nó thành các giá trị 6-bit 38, 58, 11 và 41. Cuối cùng, những con số này được chuyển đổi thành ký tự ASCII bằng cách sử dụng bảng mã Base64.