Làm thế nào để bạn thực hiện mã hóa base64?

Base64 là lược đồ mã hóa nhị phân thành văn bản. Nó biểu thị 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

Mã hóa 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ộ ký tự 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, vẫn nên mã hóa dữ liệu thành bộ ký tự ASCII để tương thích ngược

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

Content-Disposition: inline;
	filename=favicon-16x16.png
Content-Transfer-Encoding: base64

iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAARdQTFRFAAAAAAAAAAAAAAAAAQEBDAwMHBwcHx8fCwsLAwMDGRkZHh4eBAQEICAgtra2vb29pKSksLCwODg4FBQUh4eHtLS0m5ubISEh3NzciIiIERERwsLCnp6eAgICjIyMwMDAJycnDg4OBQUFEBAQ0NDQe3t7ycnJeXl5KCgo3d3daWlpCQkJDw8PzMzMmpqarKysyMjIOjo6kZGR9/f3sbGxnZ2dPDw8z8/Pfn5+FxcXjo6OsrKybm5u5ubmExMTBgYG1NTUiYmJCgoKTk5O39/fbGxs7OzsVFRUGhoa2tra9PT00dHRMTExzs7OhoaGhYWFLCwsIyMjuLi4xcXFUlJSRUVFvr6+2dnZoaGhFhYWBwcHFRUV////p5PkYgAAAAN0Uk5Tnvn4e+Nx/gAAAAFiS0dEXOrYAJcAAAAJcEhZcwAAAEgAAABIAEbJaz4AAACnSURBVBjTY2BgZEYCjAwMTMwogImBGQ0ABVhY2dg5gExOLm4esAAvH7+AoBCzsIiomDhYgEtCUkpaRlZOXkFRCSygrKIqrqauoamlqA0xQ0dXT9/A0MjYxNQMIqBsbmFpZW1ja2hnDxGwc3B0cnZxdXNnZmEBC3h4esmJefv4uvj5B4AFAoP0zINDmEPDwiMiwQJR0UrROkDFHNFREDPQnI7hOXTvAwCtbBUc7QjTawAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxOS0wMS0yMFQwNjo1NTozNiswMDowMA0Ih5IAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTktMDEtMjBUMDY6NTU6MzYrMDA6MDB8VT8uAAAARnRFWHRzb2Z0d2FyZQBJbWFnZU1hZ2ljayA2LjcuOC05IDIwMTQtMDUtMTIgUTE2IGh0dHA6Ly93d3cuaW1hZ2VtYWdpY2sub3Jn3IbtAAAAABh0RVh0VGh1bWI6OkRvY3VtZW50OjpQYWdlcwAxp/+7LwAAABh0RVh0VGh1bWI6OkltYWdlOjpoZWlnaHQAMTkyDwByhQAAABd0RVh0VGh1bWI6OkltYWdlOjpXaWR0aAAxOTLTrCEIAAAAGXRFWHRUaHVtYjo6TWltZXR5cGUAaW1hZ2UvcG5nP7JWTgAAABd0RVh0VGh1bWI6Ok1UaW1lADE1NDc5NjczMzaP/6esAAAAD3RFWHRUaHVtYjo6U2l6ZQAwQkKUoj7sAAAAVnRFWHRUaHVtYjo6VVJJAGZpbGU6Ly8vbW50bG9nL2Zhdmljb25zLzIwMTktMDEtMjAvMTVjOGNmYTk5NjBmYmJjOWUyY2NjNGI4MTY2YTI3NTQuaWNvLnBuZ0jyrXwAAAAASUVORK5CYII=

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

Mã hóa Base64 hoạt động như thế nào?

Mã hóa Base64 được mô tả trong RFC 4648

Mã hóa Base64 hoạt động với tập hợp con 65 ký tự của bộ ký tự US-ASCII. 64 ký tự đầu tiên trong tập hợp con 65 ký tự được ánh xạ tới một chuỗi nhị phân 6 bit tương đương [_______10_______]. Ký tự thứ 65 thừa [=] đượ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 mã hóa. Sau đây là bảng ánh xạ còn được gọi là bảng chỉ mục Base64 hoặc bảng chữ cái -

# The Base64 Alphabet

Value Encoding  Value Encoding  Value Encoding  Value Encoding
    0 A            17 R            34 i            51 z
    1 B            18 S            35 j            52 0
    2 C            19 T            36 k            53 1
    3 D            20 U            37 l            54 2
    4 E            21 V            38 m            55 3
    5 F            22 W            39 n            56 4
    6 G            23 X            40 o            57 5
    7 H            24 Y            41 p            58 6
    8 I            25 Z            42 q            59 7
    9 J            26 a            43 r            60 8
   10 K            27 b            44 s            61 9
   11 L            28 c            45 t            62 +
   12 M            29 d            46 u            63 /
   13 N            30 e            47 v
   14 O            31 f            48 w         [pad] =
   15 P            32 g            49 x
   16 Q            33 h            50 y

Thuật toán mã hóa Base64 nhận luồng đầu vào gồm các byte 8 bit. Nó xử lý đầu vào từ trái sang phải và sắp xếp đầ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 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ố nguyên của các nhóm 6 bit. Sau đó, một hoặc hai ký tự đệm [_______11_______] được xuất tùy thuộc vào các trường hợp sau -

  • Đoạn cuối cùng của đầu vào 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 mã hóa Base64 kết quả bằng cách sử dụng bảng chỉ mục Base64. Sau đó, hai ký tự đệm [=] được thêm vào đầu ra

  • Đoạn cuối cùng của đầu vào 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 nhóm trong số ba nhóm 6 bit được chuyển đổi thành bảng chữ cái Base64 tương ứng. Cuối cùng, một ký tự đệm đơn [=] được thêm vào đầu ra

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

Đầu vào. ab@yz

Biểu diễn nhị phân [chuỗi 8 bit]

01100001 01100010 01000000 01111001 01111010

Bước 1. Sắp xếp đầu vào thành các nhóm 24 bit [có bốn nhóm 6 bit mỗi nhóm]. Bộ đệm 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 # [padded with two zeros at the end]

Bước 2. Chuyển đổi các chuỗi 6 bit thành bảng chữ cái Base64 bằng cách lập chỉ mục vào bảng chỉ mục Base64. Thêm ký tự đệm nếu các 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 chữ cái Base64 cho đầu ra sau

YWJAeXo=  # [padded with `=` to account for extra bits added]

Mã hóa Base64 với bảng chữ cái an toàn cho URL và Tên tệp

RFC 4648 mô tả biến thể mã hóa Base64 là URL và Tên tệp An toàn. Điều đó có nghĩa là, đầu ra do biến thể mã hóa Base64 này tạo ra có thể được truyền 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ự

# The Base64 Alphabet

Value Encoding  Value Encoding  Value Encoding  Value Encoding
    0 A            17 R            34 i            51 z
    1 B            18 S            35 j            52 0
    2 C            19 T            36 k            53 1
    3 D            20 U            37 l            54 2
    4 E            21 V            38 m            55 3
    5 F            22 W            39 n            56 4
    6 G            23 X            40 o            57 5
    7 H            24 Y            41 p            58 6
    8 I            25 Z            42 q            59 7
    9 J            26 a            43 r            60 8
   10 K            27 b            44 s            61 9
   11 L            28 c            45 t            62 +
   12 M            29 d            46 u            63 /
   13 N            30 e            47 v
   14 O            31 f            48 w         [pad] =
   15 P            32 g            49 x
   16 Q            33 h            50 y
2 và
# The Base64 Alphabet

Value Encoding  Value Encoding  Value Encoding  Value Encoding
    0 A            17 R            34 i            51 z
    1 B            18 S            35 j            52 0
    2 C            19 T            36 k            53 1
    3 D            20 U            37 l            54 2
    4 E            21 V            38 m            55 3
    5 F            22 W            39 n            56 4
    6 G            23 X            40 o            57 5
    7 H            24 Y            41 p            58 6
    8 I            25 Z            42 q            59 7
    9 J            26 a            43 r            60 8
   10 K            27 b            44 s            61 9
   11 L            28 c            45 t            62 +
   12 M            29 d            46 u            63 /
   13 N            30 e            47 v
   14 O            31 f            48 w         [pad] =
   15 P            32 g            49 x
   16 Q            33 h            50 y
3 có ý nghĩa đặc biệt trong URL và tên tệp nên chúng được thay thế bằng dấu gạch ngang [
# The Base64 Alphabet

Value Encoding  Value Encoding  Value Encoding  Value Encoding
    0 A            17 R            34 i            51 z
    1 B            18 S            35 j            52 0
    2 C            19 T            36 k            53 1
    3 D            20 U            37 l            54 2
    4 E            21 V            38 m            55 3
    5 F            22 W            39 n            56 4
    6 G            23 X            40 o            57 5
    7 H            24 Y            41 p            58 6
    8 I            25 Z            42 q            59 7
    9 J            26 a            43 r            60 8
   10 K            27 b            44 s            61 9
   11 L            28 c            45 t            62 +
   12 M            29 d            46 u            63 /
   13 N            30 e            47 v
   14 O            31 f            48 w         [pad] =
   15 P            32 g            49 x
   16 Q            33 h            50 y
4] và dấu gạch dưới [
# The Base64 Alphabet

Value Encoding  Value Encoding  Value Encoding  Value Encoding
    0 A            17 R            34 i            51 z
    1 B            18 S            35 j            52 0
    2 C            19 T            36 k            53 1
    3 D            20 U            37 l            54 2
    4 E            21 V            38 m            55 3
    5 F            22 W            39 n            56 4
    6 G            23 X            40 o            57 5
    7 H            24 Y            41 p            58 6
    8 I            25 Z            42 q            59 7
    9 J            26 a            43 r            60 8
   10 K            27 b            44 s            61 9
   11 L            28 c            45 t            62 +
   12 M            29 d            46 u            63 /
   13 N            30 e            47 v
   14 O            31 f            48 w         [pad] =
   15 P            32 g            49 x
   16 Q            33 h            50 y
5]

Mã hóa Base64 được thực hiện như thế nào?

Base64 sử dụng các ký tự 6 bit được nhóm thành chuỗi 24 bit. Ví dụ, xem xét câu Hi\n, trong đó \n đại diện cho một dòng mới. Bước đầu tiên trong quy trình mã hóa là lấy biểu diễn nhị phân của từng ký tự ASCII . Điều này có thể được thực hiện bằng cách tra cứu các giá trị trong bảng chuyển đổi ASCII sang nhị phân.

Làm cách nào để chuyển đổi văn bản thành Base64?

Cách chuyển đổi chuỗi thành Base64 trực tuyến .
Nhập hoặc dán văn bản của bạn vào trường “Văn bản”
Nhấn nút “Mã hóa văn bản thành Base64”
Sao chép hoặc tải xuống kết quả từ trường “Base64”

Làm cách nào để chuyển đổi nhị phân sang Base64?

Nhấp vào nút URL, Nhập URL và Gửi . Công cụ này hỗ trợ tải File nhị phân để chuyển sang Base64. Nhấp vào nút Tải lên và chọn Tệp. Binary to Base64 Online hoạt động tốt trên Windows, MAC, Linux, Chrome, Firefox, Edge và Safari.

Làm cách nào để sử dụng Base64 để giải mã?

Giải mã từ định dạng Base64. Chỉ cần nhập dữ liệu của bạn sau đó nhấn nút giải mã. Đối với các tệp nhị phân được mã hóa [như hình ảnh, tài liệu, v.v. ] sử dụng biểu mẫu tải lên tệp ở bên dưới trên trang này. Bộ ký tự nguồn

Chủ Đề