Python應用——base64模塊

說明

base64的作用是將二進制使用64個字符串來表示。

64個字符指的是如下的字符:

即26個大寫英文字符+26個小寫英文字符+10個數字+“+”+“/”,共計64個字符。

但是實際上還有一個“=”,它用作填充。

爲什麼要用base64,原因有幾點:

1. 不可見字符在傳遞過程中可能被忽略,導致數據異常;

2. 某些字符有特殊含義(比如轉移字符),可能導致處理異常;

3. 純文本協議需要使用;

4. 加密的時候可能會用到;

關於base64的原理,這裏不做介紹。

 

使用

通過包含base64來使用相關的編解碼操作:

import base64

通過help可以查看base64模塊的內容:

import base64


if __name__ == "__main__":
    help(base64)

具體如下:

FUNCTIONS
    b16decode(s, casefold=False)
        Decode a Base16 encoded string.

        s is the string to decode.  Optional casefold is a flag specifying whether
        a lowercase alphabet is acceptable as input.  For security purposes, the
        default is False.

        The decoded string is returned.  A TypeError is raised if s is
        incorrectly padded or if there are non-alphabet characters present in the
        string.

    b16encode(s)
        Encode a string using Base16.

        s is the string to encode.  The encoded string is returned.

    b32decode(s, casefold=False, map01=None)
        Decode a Base32 encoded string.

        s is the string to decode.  Optional casefold is a flag specifying whether
        a lowercase alphabet is acceptable as input.  For security purposes, the
        default is False.

        RFC 3548 allows for optional mapping of the digit 0 (zero) to the letter O
        (oh), and for optional mapping of the digit 1 (one) to either the letter I
        (eye) or letter L (el).  The optional argument map01 when not None,
        specifies which letter the digit 1 should be mapped to (when map01 is not
        None, the digit 0 is always mapped to the letter O).  For security
        purposes the default is None, so that 0 and 1 are not allowed in the
        input.

        The decoded string is returned.  A TypeError is raised if s were
        incorrectly padded or if there are non-alphabet characters present in the
        string.

    b32encode(s)
        Encode a string using Base32.

        s is the string to encode.  The encoded string is returned.

    b64decode(s, altchars=None)
        Decode a Base64 encoded string.

        s is the string to decode.  Optional altchars must be a string of at least
        length 2 (additional characters are ignored) which specifies the
        alternative alphabet used instead of the '+' and '/' characters.

        The decoded string is returned.  A TypeError is raised if s is
        incorrectly padded.  Characters that are neither in the normal base-64
        alphabet nor the alternative alphabet are discarded prior to the padding
        check.

    b64encode(s, altchars=None)
        Encode a string using Base64.

        s is the string to encode.  Optional altchars must be a string of at least
        length 2 (additional characters are ignored) which specifies an
        alternative alphabet for the '+' and '/' characters.  This allows an
        application to e.g. generate url or filesystem safe Base64 strings.

        The encoded string is returned.

    decode(input, output)
        Decode a file.

    decodestring(s)
        Decode a string.

    encode(input, output)
        Encode a file.

    encodestring(s)
        Encode a string into multiple lines of base-64 data.

    standard_b64decode(s)
        Decode a string encoded with the standard Base64 alphabet.

        Argument s is the string to decode.  The decoded string is returned.  A
        TypeError is raised if the string is incorrectly padded.  Characters that
        are not in the standard alphabet are discarded prior to the padding
        check.

    standard_b64encode(s)
        Encode a string using the standard Base64 alphabet.

        s is the string to encode.  The encoded string is returned.

    urlsafe_b64decode(s)
        Decode a string using the URL- and filesystem-safe Base64 alphabet.

        Argument s is the string to decode.  The decoded string is returned.  A
        TypeError is raised if the string is incorrectly padded.  Characters that
        are not in the URL-safe base-64 alphabet, and are not a plus '+' or slash
        '/', are discarded prior to the padding check.

        The alphabet uses '-' instead of '+' and '_' instead of '/'.

    urlsafe_b64encode(s)
        Encode a string using the URL- and filesystem-safe Base64 alphabet.

        Argument s is the string to encode.  The encoded string is returned.  The
        alphabet uses '-' instead of '+' and '_' instead of '/'.

函數挺多,但是離不開編碼和解碼兩種。這裏只簡單舉例:

import base64


if __name__ == "__main__":
    # help(base64)

    str = "#@$#^*^%$*&^*^&%((&^)^&)(*&_)     (*^&^$%^%#"
    enc = base64.b64encode(str)
    dec = base64.b64decode(enc)
    print enc
    print dec

對應的打印結果:

I0AkI14qXiUkKiZeKl4mJSgoJl4pXiYpKComXykgICAgICgqXiZeJCVeJSM=
#@$#^*^%$*&^*^&%((&^)^&)(*&_)     (*^&^$%^%#

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章