首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从原始二进制文件中进行Base 64解码

从原始二进制文件中进行Base 64解码
EN

Stack Overflow用户
提问于 2015-12-22 01:28:54
回答 1查看 293关注 0票数 0

我正在尝试从原始二进制文件中解码base64:

作为输入,我有4个6位的值

010000 001010 000000 011001

我把它转换成十进制,给出

16 10 0 25

最后使用base64表进行解码,给出

Q K A Z

验证了这是正确的结果。

我想使用Python的base64模块来实现自动化,但是使用

代码语言:javascript
运行
复制
import base64
base64.b64decode( bytearray([16,10,0,25]) )

返回空字符串。

将这个库与给定的输入一起使用的正确方式是什么?

EN

回答 1

Stack Overflow用户

发布于 2015-12-22 01:43:15

实际上,[16, 10, 0, 25]不是base64字符串;我不认为base64有任何函数可以将base64字母表的数字表示形式转换为字母表示形式。不过,创建自己的应用程序并不难:

代码语言:javascript
运行
复制
def to_characters(numeric_arr):
    target = b'ABCDEFGHIJKLMNOPQRSTUVWXYZ' + b'abcdefghijklmnopqrstuvwxyz' + b'0123456789' + b'+/'
    return bytes(target[n] for n in numeric_arr)

然后:

代码语言:javascript
运行
复制
>>> to_characters(bytearray([16, 10, 0, 25]))
b'QKAZ'
>>> to_characters([16, 10, 0, 25]) # <- or just this
b'QKAZ'

现在可以将此字节对象传递给base64.b64decode

代码语言:javascript
运行
复制
>>> base64.b64decode(b'QKAZ')
b'@\xa0\x19'

(请注意,在使用bytearray的示例中有一个语法问题--不要使用bytearray[...],而要使用bytearray([...])。( Python不使用类似C的int array[size]语法。)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34401245

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档