在base64上用Python编码/解码增加新行吗?

问题描述 投票:2回答:1

我已经编写了这些实用程序功能:

import base64

def der2str(der):
    return bin2str( base64.encodebytes(der) )

def str2der(str_):
    return base64.b64decode( str2bin(str_) )

def bin2str(binary):
    return binary.decode('utf8')

def str2bin(str_):
    return str_.encode('utf8')

我跑步:

if __name__ == '__main__':
    test = 'MIIEowIBAAKCAQEA6cVU+6GZyr1jaxvJcLEdRb9cicL/4Soe/HqN+gE/UdM5C71aG6HhNSplj1qi\nX8Abffen'
    print(test)
    print(der2str(str2der(test)))

但是输出是:

MIIEowIBAAKCAQEA6cVU+6GZyr1jaxvJcLEdRb9cicL/4Soe/HqN+gE/UdM5C71aG6HhNSplj1qi
X8Abffen
MIIEowIBAAKCAQEA6cVU+6GZyr1jaxvJcLEdRb9cicL/4Soe/HqN+gE/UdM5C71aG6HhNSplj1qi
X8Abffen


为什么我在第二张纸上又多了两行?

python python-3.x base64 decode encode
1个回答
0
投票

base64.encodebytes(s)的文档状态为插入换行符>>

对类似字节的对象s进行编码,该对象可以包含任意二进制数据,并返回包含base64编码数据的字节,并在每输出76个字节后插入换行符(b'\ n'),并确保有一个尾随换行符,根据RFC 2045(MIME)。

© www.soinside.com 2019 - 2024. All rights reserved.