Python中是否有RFC4648(“Base16、Base32 和 Base64 数据编码”)的任何实现?请注意,我专门寻找 RFC 4648,而不是它的前身。只要不需要太长时间,其他脚本语言就可以工作。首选 Python。
5 回答
Python 有一个实现 RFC 3548(RFC 4648 的旧版本)的base64模块。
Base64#strict_decode64
Ruby 在和Base64#strict_encode64
方法 中实现了 RFC 4648 。资源。
base64 也有一个字符串操作数版本:
a_str = 'This is a string'
a_str.encode('base64', 'strict')
'VGhpcyBpcyBhIHN0cmluZw==\n'
它和 base64.b64encode 一样,但我想我会把它作为一个选项扔在那里。
补丁:
您正在寻找的是常规 base64 模块的“扩展十六进制”,我记得我为 DNSSEC 项目安装了一段时间: http: //bugs.python.org/issue16995
在使用https://golang.org/src/encoding/base32/base32.go时
我找不到 RFC 4648 所指的“带有扩展十六进制字母的 Base 32 编码”的 python 实现;所以我为python写了一个:
https://gist.github.com/graham/d7845f00fce0690b65ab049d52c1ddcb
据我所知,如果您使用标准字符映射,RFC 3548 并没有什么不同,但我无法找到使用扩展十六进制字母表的标准方法。
随意复制粘贴,如果人们认为这是一个合理的解决方案,我会编写一些测试并创建一个 git repo。