搜索的用戶組別: 遊客[0級]
搜索選項 要有附件 作者搜索
搜索範圍
Dedo 論壇搜索系統
DC論壇影城 ad.vbox
香港易存網庫 [服務器租用|easyhost.com.hk] 域名 電郵 VPN 網頁寄存 快速穩定 雲端 Hosting Server 電話:(852)-21550486 / (86)-21-61979257 服務:[ 資訊, 電郵服務, 資訊網絡, 網頁儲存, 網頁設計, 網站設計, 網頁寄存, 網站寄存, 主機租用, 主機托管, 伺服器管理, 伺服器租用, 伺服器托管, 服務器租用, 服務器托管, 香港服務器托管, 香港服務器租用, 域名註冊, 網站地圖, 客戶優惠, 報章報導, web hosting, hosting, email service, web page design, web design, dedicated server, dedicated host, server management, server colocation, colocation, Virtual Host, MPLS, CDN, IPLC ]
返回列表 發帖

[轉貼] Base 64 coding

Base 64编码

Base 64 编码采用了US-ASCII 65个字符集,每个字符都由6位来表示(0-
2 6-1
),而第65位字符“=”用来表示字符串的结束。

  
                                                                                                                                                
            Value
           
            Encoding
            
            

            
            Value
            
            Encoding
            
            

            
            Value
            
            Encoding
            
            

            
            Value
            
            Encoding
            
            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
            
            64(pad)
            
            =
            
            14
            
            O
            
            31
            
            f
            
            48
            
            w
            
            

            
            

            
            15
            
            P
            
            32
            
            g
            
            49
            
            x
            
            

            
            

            
            16
            
            Q
            
            33
            
            h
            
            50
            
            y
            
            

            
            

            
            

            
            

            
            

            
            

            
            

            
            

            
            

            
            

            

编码原理
输入串以24bits3字节) 为一位组,输出为4个编码后的字符,编码过程从左到右。24位的输入组实际上是3个八位的单字节构成,编码时24位被视为46位(0-63)的组合,每个6位再按照base64字母表编码为一个字符。(编码时位的顺序?)
输出行每行不应多于76个字符,编码表中没有的字符将被忽略。
当输入位数小于24位时,右边补0直到位数构成6位的倍数。
换行符必须转换成由base64编码过的CRLF字符序列。
如果遇到“=”,则可说明已到达字符串结尾。
数据的结尾用“=”填充,下列为“=”使用的情况:
1)
当输入位数为24位的整数倍的时候,编码后的输出单元为4的整倍数,此时输出结尾没有“=”。
2)
若输入流的最后单位是8位时,末尾将会有两个“=”。


3)
若输入流的最后单位是16位,末尾将会有一个“=”。


程序流程:
1)
编码:输入-原文。
逐个扫描输入字节,每六位转换成base64字符,直到结束。注意换行,以及结尾“=”符号处理。
2)
解码:输入-译文base64代码
判断是否为合法字符,逐个输入译文符号,没3字节(24bits)进行一次处理。注意结尾“=”的处理。


[ 本帖最後由 litfish04 於 2008-11-25 13:06 編輯 ]

非常感谢诶。之前还使用过这个算法

TOP

学习中感谢整理分享辛苦了。

TOP

学习中感谢整理分享辛苦了。

TOP

返回列表