Vua Tên Miền chuyên cung cấp tên miền đẹp, giá rẻ! Hãy liên hệ kỹ thuật: 0914205579 - Kinh doanh: 0912191357 để được tư vấn, hướng dẫn miễn phí, Cảm ơn quý khách đã ủng hộ trong thời gian qua!
kinh doanh, bán hàng, tư vấn, bảo hiểm Những cá nhân, tổ chức, đại lý,muốn bán, hợp đồng bảo hiểm
Monday, August 3, 2015


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, ASCII, các kí tự M, a, n sẽ là 77, 97, và 110 với 8-bit nhị phân là 01001101, 01100001, 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).

Text contentMan
ASCII77 (0x4d)97 (0x61)110 (0x6e)
Bit pattern010011010110000101101110
Index1922546
Base64-encodedTWFu


Bảng mã base64:

ValueCharValueCharValueCharValueChar
0A16Q32g48w
1B17R33h49x
2C18S34i50y
3D19T35j51z
4E20U36k520
5F21V37l531
6G22W38m542
7H23X39n553
8I24Y40o564
9J25Z41p575
10K26a42q586
11L27b43r597
12M28c44s608
13N29d45t619
14O30e46u62+
15P31f47v63/

Khi số bytes không chia hết cho 3 điều đó có nghĩa là thiếu 1 hay 2 bytes thì ta thêm phần bytes phụ với giá trị bằng 0 và thực hiện chuyển đổi.

tcaviet@gmail.com

0 comments:

Post a Comment

domain, domain name, premium domain name for sales

Popular Posts