首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何安全地将随机字节数组编码为文本格式

如何安全地将随机字节数组编码为文本格式
EN

Stack Overflow用户
提问于 2018-07-03 11:12:10
回答 1查看 152关注 0票数 1

Mongo变更流是以二进制格式重新处理的

为了能够编写mongo更改流的脚本,我希望将字节数组编码为命令行参数安全的格式。

代码语言:javascript
复制
pprint.pprint(change['_id']['_data'])
(b'\x82[8\x92G\x00\x00\x00\x01Fd_id\x00d[8\x91\xf2.\xc2\xd4\x00\x0b\xabO\x98'
 b'\x00Z\x10\x04\x16,\x92\xf8\xbf\x92G\x87\x8d1\xff(\x1a\x1b{\xc8\x04')

转换作为参数的二进制数组文本的安全格式是什么?

例如,将二进制格式转换为给定格式,并从给定格式输入str()返回二进制文件将很有帮助。

尝试1

代码语言:javascript
复制
base64.b85encode(change['_id']['_data']).decode('ascii')
'f?GI}M*si-0Y+qBX=DIoTR4&OF2d9R3#(6<09p_P7A%tZzmi9XjWPcy8XJ4a1O'

从二进制到base85可以工作,但我似乎找不出回来的路。

编辑:重新打开Rational

我认为这个问题不应该被标记为重复,因为这个问题的目标是不代表人类可读的字符/编码的随机字节数组的转换。如下所示,前面的问题侧重于将字符串转换为二进制数组和back,这是二进制表示的特例,而我的用例则需要通用解决方案。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-03 11:31:50

太酷了,我想我已经弄明白了

base64.b85decode将以字符串和二进制作为输入。

示例:

代码语言:javascript
复制
b = b'\x82[8\x929\x00\x00\x00\x04Fd'
b == base64.b85decode(base64.b85encode(b).decode('ascii'))
True
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51153175

复制
相关文章

相似问题

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