Base64 và Quoted-printable Encoding

Một phần của tài liệu nghiên cứu và xây dựng ứng dụng gởi và nhận e-mail trên điện thoại blackberry (Trang 128 - 133)

B.3.1 Base64:

Phương pháp chuyển mã sử dụng các kí tự a-z, A-z, /, + và = để biểu diễn dữ liệu sau khi encode.

129

Các byte cần encode sẽ được biểu diễn dưới dạng nhị phân (nguyên vẹn 8 bit). Với mỗi 6 bit liên tiếp nhau trong dãy mã nhị phân tương ứng với một giá trị thập phân từ 1-63, giá trị này được ánh xạ vào bảng chuyển đổi bên dưới sang giá trị được encode.

Khi số kí tự cần encode là bội của 3 (24 bit) thì kết quả encode không có phần padding (các dấu =). Khi số kí tự cần encode chia 3 dư 2 thì kết quả sẽ có một dấu = ở cuối. Nếu số dư là 1 thì sẽ có 2 dấu = ở cuối kết quả encode.

Bảng mã chuyển đổi: Value Char Value Char Value Char Value Char 0 A 16 Q 32 g 48 W 1 B 17 R 33 H 49 X 2 C 18 S 34 I 50 Y 3 D 19 T 35 J 51 Z 4 E 20 U 36 K 52 0 5 F 21 V 37 L 53 1 6 G 22 W 38 M 54 2 7 H 23 X 39 N 55 3 8 I 24 Y 40 O 56 4 9 J 25 Z 41 P 57 5 10 K 26 a 42 Q 58 6

130 11 L 27 b 43 R 59 7 12 M 28 C 44 S 60 8 13 N 29 D 45 T 61 9 14 O 30 E 46 U 62 + 15 P 31 F 47 V 63 / Bảng B.4 – Bảng mã chuyển đổi Ví dụ: Text content M A n ASCII 77 97 110 Bit pattern 0 1 0 0 1 1 0 1 0 1 1 0 0 0 0 1 0 1 1 0 1 1 1 0 Index 19 22 5 46 Base64-encoded T W F u Bảng B.5 – Ví dụ về chuyển đổi mã B.3.2 Quoted-printable:

Là phương pháp chuyển mã sử dụng các kí tự in được để chuyển dữ liệu dạng 8-bit qua các đường đi chỉ hỗ trợ 7-bit. Phương pháp này ánh xạ một byte bất kì thành một dãy các kí tự ASCII.

Cách chuyển đổi: Bất kì byte nào sẽ được ánh xạ thành 3 kí tự (bắt đầu bằng dấu =, theo sau là 2 kí tự hexa). Những kí tự in được (33-60 và 62-126) không cần encode. Dấu = (mã 61) được encode thành =3D. Dấu TAB và SPACE được encode thành =09 và =20. Dấu xuống dòng được encode thành =0D=0A.

131

Một dòng dữ liệu dạng quoted-pritable chỉ có tối đa 76 kí tự, do đó dấu xuống dòng mềm (soft line break) được sử dụng để cắt bớt kí tự trong trường hợp có nhiều hơn 76 kí tự.

Ví dụ:

If you believe that truth=3Dbeauty, then surely=20= mathematics is the most beautiful branch of philosophy.

Đoạn trên là kết quả sau khi encode chuỗi sau:

If you believe that truth=beauty, then surely mathematics is the most beautiful brach of philosophy.

B.4 Cách đánh số các thành phần trong MIME

Để có thể lấy đúng phần dữ liệu mong muốn khi dùng IMAP, ta cần phải hiểu cách các phần dữ liệu đó được đánh địa chỉ như thế nào trong cấu trúc MIME. Ví dụ dưới đây miêu tả cách xác định địa chỉ các phần trong một message dang multipart.

HEADER ([RFC-2822] header of the message)

TEXT ([RFC-2822] text body of the message)

MULTIPART/MIXED 1 TEXT/PLAIN

2 APPLICATION/OCTET-STREAM 3 MESSAGE/RFC822

3.HEADER ([RFC-2822] header of the message)

3.TEXT ([RFC-2822] text body of the message)

MULTIPART/MIXED 3.1 TEXT/PLAIN

3.2 APPLICATION/OCTET-STREAM 4 MULTIPART/MIXED

4.1 IMAGE/GIF

4.1.MIME ([MIME-IMB] header for the IMAGE/GIF) 4.2 MESSAGE/RFC822

4.2.HEADER ([RFC-2822] header of the message)

4.2.TEXT ([RFC-2822] text body of the message)

MULTIPART/MIXED 4.2.1 TEXT/PLAIN 4.2.2 MULTIPART/ALTERNATIVE

4.2.2.1 TEXT/PLAIN 4.2.2.2 TEXT/RICHTEXT

132

Trong đó: HEADER là toàn bộ phần header của message, TEXT là toàn bộ nội dung phần thân của message (hoặc một part của message). Mỗi part sẽ được đánh số, các part bên trong một part khác sẽ được đánh số theo chiều sâu.

Ví dụ:

Part 3 dạng MULTIPART/MIXED, bên trong chứa 2 part TEXT/PLAIN và APPLICATION/OCTET-STREAM sẽ được đánh số lần lượt là 3.1 và 3.2. Biết được cách đánh địa chỉ này ta dễ dàng lấy được nội dung của bất kì phần nào trong message thông qua lệnh FETCH đã đề cập ở trên.

133

Tài liệu tham khảo

Tài liệu dạng văn bản:

[1] BlackBerry Forum – Blackberry Development Documents – Research In Motion.

[2] BlackBerry JDE 4.7 API References – BlackBerry 4.7 SDK.

[3] BlackBerry Forum – Writing You Frist Application V5 – Research In Motion. [4] BlackBerry Forum – How And When To Sign V2 – Research In Motion. [5] BlackBerry Forum – Storing Persistent Data V2 – Research In Motion.

[6] BlackBerry Developer Journal Team – BlackBerry Developer Journal Volume 2, issue 2

[7] Josh Schiffman – BlackBerry OS Report 2 – Network and security Research Center, Department of computer Science and engineering, pennsylvania State Univercity, University Park PA.

[8] Logic mail – Logicmail Development Blog – 2008 - 2009

Các website: [9] www.Blackberry.com [10] www.codeproject.com [11] www.java2s.com [12] www.wikipedia.org [13] www.thinkingblackberry.com [14] http://en.wikipedia.org/wiki/Base64 [15] http://en.wikipedia.org/wiki/Quoted-printable [16] http://www.tcpipguide.com/free/t_MIMECompositeMediaTypesMultipartandE ncapsulatedMes-4.htm [17] https://www.logicprobe.org/proj/logicmail/ [18] http://na.blackberry.com/eng /developers/

Một phần của tài liệu nghiên cứu và xây dựng ứng dụng gởi và nhận e-mail trên điện thoại blackberry (Trang 128 - 133)

Tải bản đầy đủ (PDF)

(133 trang)