日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

base64编码计算机网络,【MIME协议】base64编码与quoted-printable编码

發布時間:2023/12/20 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 base64编码计算机网络,【MIME协议】base64编码与quoted-printable编码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

MIME概述

base64編碼

基本原理

具體步驟

例題

quoted-printable編碼

基本步驟

例題

ASCLL字符代碼表

MIME概述

電子郵件協議SMTP通過連接建立、郵件傳送、連接釋放三個階段實現發送方和接收方之間的通信。

不過SMTP有很多的缺點:

SMTP不能傳送可執行文件或其他的二進制對象。

SMTP限于傳送7位的ASCLL碼很多非英語語言無法傳送。

SMTP服務器會拒絕超過一定長度的郵件。

某些SMTP的實現并沒有完全按照SMTP的互聯網標準。如:

回車、換行的刪除和增加

超過76個字符會截斷或者自動換行

后面多余的空格刪除

將制表符tab轉換為若干個空格

提出了通用互聯網郵件擴充MIME

MIME繼續使用原來的郵件格式,增加了郵件主體的結構,定義了傳送非ASCALL碼的編碼規則。

MIME增加5個新的郵件首部

MIME-Version

表示使用的MIME的版本號,一般是1.0

Content-Type

說明郵件主體的數據類型和子類型

Content-Type都是“主類型/子類型”的形式。主類型有text, image,audio, video, application, multipart, message等,分別表示文本、圖片、音頻、視頻、應用、分段、消息等。

Content-Transfer-Encoding

在傳送郵件主體如何編碼的

Content-Transfer-Encoding共有Base64, Quoted-printable, 7bit, 8bit, Binary等幾種。

使用最廣泛的編碼方式:Base64, Quoted-Printable。

Content-Disposition

可讀字符串,說明此郵件主體是否是圖像、音頻或視頻

Content-ID

郵件的唯一標識符

了解了MIME基本概況,我們看看兩種使用最廣泛的編碼方式。

base64編碼

對于任意的二進制文件,都可用base64編碼。base64已經成為網絡上常見的傳輸8Bit字節代碼的編碼方式之一。

基本原理

定義一個base62索引表,有字符"A-Z、a-z、0-9、+、/" 64個可打印字符。

6位二進制代碼共有64種不同的值,從0到63,下面是對應表

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

15 P  32 g   49 x

16 Q  33 h   50 y

具體步驟

把二進制代碼劃為一個個24位長的單元,再把每一個24位單元劃分為4個6位組。

在每組前面添加兩個0,每組由6個變為8個二進制位,總共32個二進制位(四個字節)。

根據base64編碼對照表獲得對應的值。

例題

試將數據 11001100 10000001 00111000進行base64編碼,并得到最后傳輸的ASCII數據。

第一步:正好是24位長,分為4個6位組

110011 001000 000100 111000

第二步:在每組前面添加兩個0

00110011 00001000 00000100 00111000

51 ???8 ????4 ????56

第三步:根據base64編碼對照表獲得對應的值。

00110011 00001000 00000100 00111000

51 ???8 ????4 ????56

z ????I ????E ????4

第四步:找出對應的二進制值

z -> 122 -> 01111010

I -> 73 -> 01001001

E -> 69 -> 01000101

4 -> 52 -> 00110100

quoted-printable編碼

這種方法適用于所傳送的數據中只有少量的非ASCLL碼

ASCII編碼是7位編碼,一共可以組成128個不同的ASCII碼,其中可以打印的有95個(95個中包括了空格),還有33個控制字符不可打印。

基本步驟

可以打印的ASCLL碼,不變

等號“=”和不可打印的ASCLL碼以及非ASCLL碼的數據編碼方式:

每個字節(8位)的二進制用兩個十六進制數字表示

在其前面加上一個等號“=”

例題

試將數據01001100 10011101 00111001進行quoted-printable編碼,并得出最后傳送的ASCII數據。這樣的數據用quoted-printable編碼后其編碼開銷有多大?

第一步:將二進制分為8位一組,轉為十六進制,超過5F不可打印(當然也可直接轉化為十進制,超過95不可打印)

01001100 10011101 00111001

4C ???9D ???39

可打印:不用改變,不可打印:兩個十六進制數字前面加上“=”

01001100 10011101 00111001

4C ???9D ???39

4C ???=9D ??39

可打印:不用改變,不可打印:將“=”和兩個十六進制數字分別轉化為8位二進制(=:00111101)

4C、39可以打印,9D不可以打印

=9D:00111101 00111001 01000100

ASCII數據:

01001100 00111101 00111001 01000100 00111001

開銷:(5-3)/3=66.7%

ASCLL字符代碼表

圖片來自百度

參考文獻:

計算機網絡(第7版)-謝希仁

總結

以上是生活随笔為你收集整理的base64编码计算机网络,【MIME协议】base64编码与quoted-printable编码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。