Base64 Encoding là gì

Base64 Encoding là gì

Base64 là một sơ đồ binary-to-text(nhị phân thành văn bản). Nó biểu diễn dữ liệu nhị phân ở định dạng chuỗi ASCII có thể in được bằng cách dịch nó thành biểu diễn cơ số 64.

encode Base64 thường được sử dụng khi có nhu cầu truyền dữ liệu nhị phân qua phương tiện không xử lý chính xác dữ liệu nhị phân và được thiết kế để xử lý dữ liệu văn bản chỉ thuộc bộ mã US-ASCII 7-bit.

Một ví dụ về hệ thống như vậy là Email (SMTP), được thiết kế theo truyền thống để hoạt động với dữ liệu văn bản thuần túy trong bộ ký tự US-ASCII 7 bit. Mặc dù sau đó, nó đã được mở rộng để hỗ trợ các tin nhắn văn bản không phải US-ASCII cũng như các tin nhắn không phải văn bản như âm thanh và hình ảnh, Bạn vẫn nên encode dữ liệu thành bộ ký tự ASCII để tương thích ngược.

c bài viết liên quan:

encode Base64 encode mọi dữ liệu nhị phân hoặc dữ liệu văn bản không phải ASCII sang định dạng ASCII có thể in được để có thể truyền một cách an toàn qua bất kỳ kênh giao tiếp nào. Ví dụ: khi bạn gửi một email có chứa một hình ảnh cho bạn bè của mình, phần mềm email Base64 của bạn sẽ encode hình ảnh và chèn văn bản tương đương vào email.

Phần mềm email của người nhận sẽ Base64-decode dữ liệu văn bản được encode ở trên để khôi phục hình ảnh nhị phân ban đầu.

Công cụ encode/decode Base64

Encode Base64 hoạt động như thế nào?

Encode Base64 được mô tả trong RFC 4648.

Encode Base64 hoạt động với tập con 65 ký tự của bộ mã US-ASCII. 64 ký tự đầu tiên trong số 65 ký tự con được ánh xạ tới một chuỗi nhị phân 6 bit tương đương (26 = 64). Ký tự thứ 65 phụ (=) được sử dụng để đệm.

Mỗi chuỗi nhị phân 6 bit từ 0 đến 63 được gán một bảng chữ cái Base64. Ánh xạ này giữa chuỗi nhị phân 6 bit và bảng chữ cái Base64 tương ứng được sử dụng trong quá trình encode. Sau đây là bảng ánh xạ còn được gọi là bảng chỉ mục hoặc bảng chữ cái Base64:

Bảng chữ cái Base64

Base64 Encoding là gì

Thuật toán encode Base64 nhận một luồng đầu vào 8-bit byte. Nó xử lý đầu vào từ trái sang phải và tổ chức đầu vào thành các nhóm 24 bit bằng cách ghép ba byte 8 bit. Các nhóm 24 bit này sau đó được coi là 4 nhóm 6 bit được ghép nối. Cuối cùng, mỗi nhóm 6 bit được chuyển đổi thành một ký tự trong bảng chữ cái Base64 bằng cách tham khảo bảng chữ cái Base64 ở trên.

Khi đầu vào có ít hơn 24 bit ở cuối, các bit 0 được thêm vào (ở bên phải) để tạo thành một số tích phân của các nhóm 6 bit. Sau đó, một hoặc hai ký tự pad (=) được xuất ra tùy thuộc vào điều kiện sau trường hợp:

  1. Đoạn input cuối cùng chứa chính xác 8 bit: Bốn bit 0 được thêm vào để tạo thành hai nhóm 6 bit. Mỗi nhóm 6 bit được chuyển đổi thành ký tự được encode Base64 kết quả bằng cách sử dụng bảng chỉ mục Base64. Sau đó, hai ký tự pad (=) được thêm vào đầu ra.
  2. Đoạn input cuối cùng chứa chính xác 16 bit: Hai bit 0 được thêm vào để tạo thành ba nhóm 6 bit. Mỗi phòng trong số ba nhóm 6-bit được chuyển đổi sang bảng chữ cái Base64 tương ứng. Cuối cùng, một ký tự pad (=) được thêm vào đầu ra.

Hãy xem một ví dụ để hiểu quy trình encode Base64:

Input: ab@yz

Biểu diễn nhị phân (chuỗi 8 bit):

01100001 01100010 01000000 01111001 01111010

Bước 1: Tổ chức đầu vào thành các nhóm 24 bit (mỗi nhóm có 4 nhóm 6 bit). Đệm với các bit 0 ở cuối để tạo thành một nhóm 6 bit không thể tách rời.

011000 010110 001001 000000 011110 010111 101000 # (đệm bằng hai số không ở cuối)

Bước 2: Chuyển đổi chuỗi 6 bit sang bảng chữ cái Base64 bằng cách đánh chỉ mục vào bảng chỉ mục Base64. Thêm ký tự đệm nếu bit 0 được thêm vào cuối đầu vào.

Các nhóm 6 bit ở trên tương đương với các chỉ mục sau:

24 22 9 0 30 23 40

Lập chỉ mục vào bảng bảng chữ cái Base64 cho kết quả sau:

YWJAeXo = # 

Base64 Encoding là gì

RFC 4648 mô tả một biến thể encode Base64 là URL và tên tệp an toàn. Điều đó có nghĩa là đầu ra được tạo ra bởi biến thể encode Base64 này có thể được truyền một cách an toàn trong URL và được sử dụng trong tên tệp.

Biến thể này có một thay đổi đơn giản đối với bảng chữ cái Base64. Vì các ký tự + và / có ý nghĩa đặc biệt trong URL và tên tệp, chúng được thay thế bằng dấu gạch ngang (-) và dấu gạch dưới (_)

Quý khách có thể tham khảo hơn ở các dịch vụ do websitehcm.com cung cấp như: dịch vụ seo, dịch vụ viết content , dịch vụ chăm sóc website, dịch vụ thiết kế website 

Leave a Reply