Base64 là gì?

Base64 là một chương trình mã hóa chuỗi ký tự bằng cách dùng thay thế các ký tự trong bảng mã ASCII 8 bit thông dụng thành bảng mã 6 bit. Nó thường được sử dụng để mã hóa các tập tin đa phương tiện (hình ảnh, âm thanh, video,…). Ký tự 64 trong Base64 là đại diện cho 64 ký tự trong bãng mã ASCII. Base64 thường được sử dụng trong việc truyền tải email. Tuy nhiên, ngày nay người ta đã sử dụng nó vào việc truyền tải hình ảnh trên website.

Mã hoá file theo chuẩn Base64.

Chuẩn Base64 là một tập hợp gồm các ký tự (theo đúng thứ tự) : từ A đến Z, từ a đến z, từ 0 đến 9, dấu +, dấu /
Tổng cộng là 64 ký tự biểu diễn 64 giá trị từ 0 đến 63. Như vậy, ký tự từ A đến Z biểu diễn cho các giá trị từ 0 đến 25, từ a đến z biểu diễn cho giá trị từ 26 đến 51, từ 0 đến 9 biểu diễn cho giá trị từ 52 đến 61, dấu + biểu diễn cho giá trị 62, dấu / biểu diễn cho giá trị 63.

Một ký tự biểu diễn theo mã ASCII sẽ dùng 8 bits. Một ký tự theo Base64 sẽ dùng 6 bits. Như vậy, một file ở dạng Base64 sẽ có kích thước lớn hơn khi ở dạng ASCII. Cụ thể, sẽ lớn gấp 4/3 lần (8 bits/6 bits).

Để chuyển đổi file sang dạng Base64, ta thực hiện theo các bước như sau :
1. Đọc nội dung file dưới dạng bit.
2. Cứ 6 bits ta tách thành một nhóm để xử lý.
3. Tra bảng mã Base64, mỗi nhóm 6 bits sẽ có giá trị tương ứng với một ký tự.
4. Ghi ra file các ký tự đó.
Vậy là xong.

Ta sẽ thực hiện các thao tác trên qua một ví dụ cụ thể.

Chuyển từ Man sang mã base64 sẽ là TWFu
Trong ví dụ trên, Mã ASCII, các kí tự M, a, n sẽ là 77, 97, và 110 với 8-bit nhị phân là 0100110101100001, và 01101110. Có 3 giá trị được nối lại với nhau thành một chuổi 24bit cụ thể là 010011010110000101101110. Một nhóm 6bit có tối đa 2^6 = 64 các giá trị nhị phân khác nhau sẽ được tính từ trái sang phải. (trong trường hợp này 24bit ta sẽ chia thành 4 nhóm từ trái sang phải
010011 010110 000101 101110 sau đó tra bảng mã base64 sẽ được giá trị base64 tương ứng).

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

Để hiểu hơn và khái niệm base64 mà không phải base69 chúng ta cùng xem ví dụ sau để hiểu rõ hơn về cơ chế convert dữ liệu từ binary sang string như thế nào.

Quá trình thực hiện theo 4 bước.

  1. Dữ liệu nhị phân được sắp xếp theo từng khối 24 bit (3 byte) liên tục.
  2. Mỗi đoạn 24 bit được nhóm thành bốn phần 6 bit mỗi phần.
  3. Mỗi nhóm 6 bit được chuyển đổi thành các giá trị ký tự Base64 tương ứng của chúng. Mã hóa Base64 chuyển đổi ba octet thành bốn ký tự được mã hóa. (mỗi octet có 8bits dữ liệu)
  4. Người nhận sẽ phải đảo ngược quá trình này để khôi phục thông điệp ban đầu

Thật thú vị là các ký tự giống nhau sẽ được mã hóa khác nhau, tùy thuộc vào vị trí của chúng trong 3 octet để tạo ra 4 ký tự.

Và một image sau khi bị base64 sẽ kiểu như vậy

TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlz IHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2Yg dGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCBpbiB0aGUgY29udGlu dWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZGdlLCBleGNlZWRzIHRo ZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4=

Người đăng: dathbz
Time: 2020-07-25 10:41:06
LaGi.Wiki

TÀI TRỢ

» AccRoblox.Org - Mua bán acc & mọi thứ về roblox
» ApiDoiThe.Com - Đổi thẻ cào uy tín
» BotSMS.net - Auto Bank, Auto Momo