繁体   English   中英

Python - 如何解码 RFC2045 Base64 字符串

[英]Python - How to Decode a RFC2045 Base64 String

找不到解码 RFC2045 格式 base64 字符串的方法

我正在尝试在 Python 3 中解码 RFC2045 格式的 base64 字符串,但无法找到一种方法来实现与org.apache.commons.codec.binary.Base64.decodeBase64相同的结果。

这是Java代码:

import static org.apache.commons.codec.binary.Base64.decodeBase64;

String str1 = "j-FH-F9__CIiwyg0o3A2mKflRBnxZSMwktDJQyvRevc";
byte[] b1 = decodeBase64(str1);
System.out.println(b1.length + " " + b1);

和 Python 3 代码:

import base64
from email import base64mime

def bytes2list(bdata):
    return [b if b < 128 else b - 256 for b in bdata]

b64str = 'j-FH-F9__CIiwyg0o3A2mKflRBnxZSMwktDJQyvRevc'
b64str += "=" * ((4 - len(b64str) % 4) % 4)
b1 = base64.b64decode(b64str)
b2 = base64mime.decode(b64str)
print(len(b1), bytes2list(b1))
print(len(b2), bytes2list(b2))

Java程序输出: 32 [-113, -31, 71, -8, 95, 127, -4, 34, 34, -61, 40, 52, -93, 112, 54, -104, -89, -27, 68, 25, -15, 101, 35, 48, -110, -48, -55, 67, 43, -47, 122, -9]

Python 输出: 29 [-116, 81, -59, -12, 34, 34, -61, 40, 52, -93, 112, 54, -104, -89, -27, 68, 25, -15, 101, 35, 48, -110, -48, -55, 67, 43, -47, 122, -9]用于base64.b64decodebase64mime.b64decode

我希望这不是一种非常罕见的情况,但只是找不到正确的方法。 任何提示?

如何在 python 中解码 base64 url​​ 中找到答案 . 代码应该是:

b1 = base64.urlsafe_b64decode(b64str)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM