Câu hỏi

28/05/2013 06:57
Xin hỏi định dạng của file *.eml do Outlook Express tạo ra tuân theo chuẩn nào? Và cách thức mã hóa của file đính kèm?
Danh sách câu trả lời (1)

File *.eml do trình Outlook Express tạo ra có định dạng tuân theo chuẩn định dạng email MIME (Multipurpose Internet Mail Extensions). Đặc tả chi tiết về định dạng này được trình bày trong các RFC 822, RFC 1341, RFC 1521. Bạn có thể tìm và download các RFC này từ Internet hoặc liên hệ với toà soạn báo PC World để copy chúng. Các file nhị phân đính kèm trong e-mail thường được mã hóa theo phương pháp Base64 để biến từ dạng nhị phân thành dạng ASCII 7 bit hầu dễ dàng truyền thành công từ nơi này đến nơi khác.
Phương pháp mã hóa Base64 cũng khá đơn giản, gồm các bước chính như sau:
1. Chia file nhị phân ra thành nhiều nhóm nhỏ, mỗi nhóm dài 3 byte (nhóm cuối cùng nếu không đủ 3 byte thì thêm các byte giả vào cho đủ).
2. Mã hoá từng nhóm 3 byte thành 4 ký tự ASCII 7 bit in ấn được như sau:
• Gộp 3 byte thành 24 bit liên tiếp, chia 24 bit ra thành 4 nhóm, mỗi nhóm 6 bit có giá trị từ 0 đến 63 (gọi mỗi nhóm 6 bit là 1 ký số trong hệ thống số 64, do đó ta gọi phương pháp này là Base64).
• Mã hoá mỗi nhóm 6 bit thành 1 ký tự in ấn như sau: nếu giá trị từ 0 đến 25 thì đổi thành ký tự từ ‘A’ đến ‘Z’; nếu giá trị từ 26 đến 51 thì đổi thành ký tự từ ‘a’ đến ‘z’; nếu giá trị từ 52 đến 61 thì đổi thành ký số từ ‘0’ đến ‘9’; nếu giá trị là 62 thì đổi thành ký tự ‘+’; nếu giá trị là 63 thì đổi thành ký tự ‘/’.
• Có thể chèn vào kết quả các ký tự xuống hàng để tạo ra kết xuất dễ đọc.
Lưu ý rằng với phương pháp mã hóa Base64 như trên, mỗi file nhị phân có n byte sẽ được mã hóa ra thành (n+2)/3*4 ký tự ASCII 7 bit (chưa kể các ký tự xuống hàng được chèn vào thêm). Về nguyên tắc, nếu đã biết phương pháp mã hóa thì ta có thể xác định được phương pháp giải mã.
Phương pháp mã hóa Base64 cũng khá đơn giản, gồm các bước chính như sau:
1. Chia file nhị phân ra thành nhiều nhóm nhỏ, mỗi nhóm dài 3 byte (nhóm cuối cùng nếu không đủ 3 byte thì thêm các byte giả vào cho đủ).
2. Mã hoá từng nhóm 3 byte thành 4 ký tự ASCII 7 bit in ấn được như sau:
• Gộp 3 byte thành 24 bit liên tiếp, chia 24 bit ra thành 4 nhóm, mỗi nhóm 6 bit có giá trị từ 0 đến 63 (gọi mỗi nhóm 6 bit là 1 ký số trong hệ thống số 64, do đó ta gọi phương pháp này là Base64).
• Mã hoá mỗi nhóm 6 bit thành 1 ký tự in ấn như sau: nếu giá trị từ 0 đến 25 thì đổi thành ký tự từ ‘A’ đến ‘Z’; nếu giá trị từ 26 đến 51 thì đổi thành ký tự từ ‘a’ đến ‘z’; nếu giá trị từ 52 đến 61 thì đổi thành ký số từ ‘0’ đến ‘9’; nếu giá trị là 62 thì đổi thành ký tự ‘+’; nếu giá trị là 63 thì đổi thành ký tự ‘/’.
• Có thể chèn vào kết quả các ký tự xuống hàng để tạo ra kết xuất dễ đọc.
Lưu ý rằng với phương pháp mã hóa Base64 như trên, mỗi file nhị phân có n byte sẽ được mã hóa ra thành (n+2)/3*4 ký tự ASCII 7 bit (chưa kể các ký tự xuống hàng được chèn vào thêm). Về nguyên tắc, nếu đã biết phương pháp mã hóa thì ta có thể xác định được phương pháp giải mã.
Trả lời câu hỏi
Câu hỏi lĩnh vực Câu hỏi khác
Rao vặt Siêu Vip