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=
#@$#^*^%$*&^*^&%((&^)^&)(*&_)     (*^&^$%^%#

猜你喜欢

转载自blog.csdn.net/jiangwei0512/article/details/105310473
今日推荐