base64

作者: 噜噜迅儿 | 来源:发表于2018-06-07 23:21 被阅读0次

    Python内置的base64可以直接进行base64的编解码:

    >>> import base64
    >>> base64.b64encode(b'binary\x00string')
    b'YmluYXJ5AHN0cmluZw=='
    >>> base64.b64decode(b'YmluYXJ5AHN0cmluZw==')
    b'binary\x00string'
    

    由于标准的Base64编码后可能出现字符+/,在URL中就不能直接作为参数,所以又有一种"url safe"的base64编码,其实就是把字符+/分别变成-_

    >>> base64.b64encode(b'i\xb7\x1d\xfb\xef\xff')
    b'abcd++//'
    >>> base64.urlsafe_b64encode(b'i\xb7\x1d\xfb\xef\xff')
    b'abcd--__'
    >>> base64.urlsafe_b64decode('abcd--__')
    b'i\xb7\x1d\xfb\xef\xff'
    

    小结

    Base64是一种任意二进制到文本字符串的编码方法,常用于在URL、Cookie、网页中传输少量二进制数据。

    练习

    请写一个能处理去掉=的base64解码函数:

    import base64
    
    def safe_base64_decode(s):
        while len(s) % 4 != 0:
            if isinstance(s, str):
                s = s.encode('utf-8')
            s += b'='
        return base64.b64decode(s)
    
    assert b'abcd' == safe_base64_decode(b'YWJjZA=='), safe_base64_decode('YWJjZA==')
    assert b'abcd' == safe_base64_decode(b'YWJjZA'), safe_base64_decode('YWJjZA')
    print('ok')
    

    相关文章

      网友评论

          本文标题:base64

          本文链接:https://www.haomeiwen.com/subject/nqansftx.html