RFC 4648(Base64)在Python中的实现

时间:2012-07-25 22:00:24

标签: python base64

Python中是否有RFC4648(“Base16,Base32和Base64数据编码”)的实现? 注意,我特意寻找RFC 4648,而不是它的前身。只要不花太长时间,其他脚本语言就可以工作。 Python是首选。

5 个答案:

答案 0 :(得分:3)

Python有一个base64模块,它实现了RFC 3548(RFC 4648的旧版本)。

答案 1 :(得分:1)

Ruby在Base64#strict_decode64Base64#strict_encode64方法中实现了RFC 4648。 Source.

答案 2 :(得分:0)

还有一个字符串操作数版本的base64:

a_str = 'This is a string'
a_str.encode('base64', 'strict')
'VGhpcyBpcyBhIHN0cmluZw==\n'

它和base64.b64encode一样,但我想我会把它作为一个选项扔进去。

补丁:

您正在寻找的是常规base64模块的“扩展十六进制”,我记得我曾经为DNSSEC项目安装了一段时间:http://bugs.python.org/issue16995

答案 3 :(得分:0)

Go标准库有一个非常好的base64 implementation(在RFC 4648中定义)。


相关的源文件:

答案 4 :(得分:0)

使用https://golang.org/src/encoding/base32/base32.go

我无法找到RFC 4648所指的python实现" Base 32编码扩展十六进制字母&#34 ;;所以我为python写了一个:

https://gist.github.com/graham/d7845f00fce0690b65ab049d52c1ddcb

据我所知,如果使用标准字符映射,RFC 3548并没有区别,但我无法找到使用扩展十六进制字母表的标准方法。

如果人们认为这是一个合理的解决方案,请随意复制粘贴,我会写一些测试并创建一个git repo。