Linux Base64编码仅修改可打印字符
我有一个base64字符串,其中包含不可打印的字符 我只想修改可打印的。但是我不能使用base64-d,因为我会丢失那些不可打印的 这是允许我这么做的命令吗 例如,如果我这样做了Linux Base64编码仅修改可打印字符,linux,bash,base64,Linux,Bash,Base64,我有一个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 -
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
等等
假设我只想用j01修改j0…我能做到吗
更新:
目前,解决方案正在转换并将base64解码输出到一个文件中,然后使用十六进制编辑器对其进行编辑
因此,如果您知道linux中包含的一些命令行十六进制编辑器,请在我的系统上尝试时告诉我 base64:输入无效 因为您只需要可打印字符,所以我怀疑您需要的是base64编码字符串 如果是这样,您应该跳过
-d
选项:
echo "base64 string" | base64 | od -c
如果确实要将某些字符更改为其他字符,可以使用
tr
(translate)命令:
从man tr
:
tr
-翻译或删除字符
您正在解码
“base64字符串”
,您对得到“二进制”感到惊讶吗返回数据?@aioobe我知道我要解决的问题…我的意思是我不应该使用base64解码…并且每个字符即使不可打印也可以根据is代码写入…004不可打印,但它是代码,但在使用base64解码时,我可能会丢失一些不可打印的字符…这就是发生的情况…base64
编码任意将数据转换为可打印字符base64-d
反转此过程。显然,解码的结果可能是无法打印的字符。可以肯定的是,无论您向base64 | base64-d
提供什么数据,您都会得到相同的数据。