Base64编码修改仅可打印的字符

发布于 2024-12-09 13:21:35 字数 704 浏览 0 评论 0原文

我有一个包含不可打印字符的 base64 字符串。

我只想修改可打印的。但我不能使用 base64 -d 因为我会丢失不可打印的内容。

这是允许我这样做的命令吗?

例如,如果我这样做,

echo "base64 string" | base64 -d | od -c 

我会得到

0000000 004 002 254 334   0 202 003 362  \f  \0   0 202 003 354   0 202
0000020 003 350 002 002 006 021   0   -   0   )   0 036 002 004   A 343
0000040 271   | 002 003  \0 352 233 002 002 021 340 002 002  \0 232 002
0000060 001   . 004 006  \0  \f   ) 346 353 323  \f  \a   J   0   0   6
0000100   0   6

等等...

假设我只想用 J 0 1 修改 J 0 0...我可以这样做吗?

更新:

目前的解决方案是将 Base64 解码转换并输出到文件中,然后使用十六进制编辑器对其进行编辑。

因此,如果您知道 linux 中包含的一些本机命令行十六进制编辑器,请告诉我

I have a base64 string that contains not printable chars.

I want to modify just the printable one. But i can't use base64 -d because I will lost the not printable ones.

Is that a command that allow me to do that?

Example, if I do

echo "base64 string" | base64 -d | od -c 

I obtain

0000000 004 002 254 334   0 202 003 362  \f  \0   0 202 003 354   0 202
0000020 003 350 002 002 006 021   0   -   0   )   0 036 002 004   A 343
0000040 271   | 002 003  \0 352 233 002 002 021 340 002 002  \0 232 002
0000060 001   . 004 006  \0  \f   ) 346 353 323  \f  \a   J   0   0   6
0000100   0   6

etc...

let's say I want to modify just the J 0 0 with J 0 1...I can do this?

UPDATE:

For the moment the solution was in convert and output the base64 decode into a file and then edit it with an HEX Editor.

So if you know some command line HEX Editor native included in linux please tell me

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

葬花如无物 2024-12-16 13:21:35

当我在我的系统上尝试它时,我得到

base64:输入无效

由于您只需要可打印字符,我怀疑您想要的是一个 base64 编码的字符串。

如果是这样,您应该跳过 -d 选项:

echo "base64 string" | base64 | od -c

如果您确实想将某些字符更改为其他字符,您可以使用 tr (翻译)命令:

来自 男人TR:

tr - 翻译或删除字符

When I try it on my system I get

base64: invalid input

Since you want printable characters only, I'm suspecting that what you want is a base64 encoded string.

If so, you should skipe the -d option:

echo "base64 string" | base64 | od -c

If you really want to change some characters into others, you could use the tr (translate) command:

From man tr:

tr - translate or delete characters

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文