如何从 Base 64 编码字符串中获取十六进制块?

问题描述 投票:0回答:3

这篇文章这个XKCD中,它们都将密码数据显示为十六进制分组。

但是,在文件中它是 Base64 编码的。我可以使用什么来将该输出与 bash 脚本相匹配?我试过了:

echo -n "7WkoOEfwfTTioxG6CatHBw==" | base64 -d
echo -n "7WkoOEfwfTTioxG6CatHBw==" | openssl enc -d -base64

他们在做什么,我如何将它们解码为十六进制块?

xkcd Encryptic

bash command-line base64 decode password-encryption
3个回答
26
投票

如果我理解正确的话,我认为需求是将base64编码的字符串转换为8字节块(16个十六进制数字)的十六进制字符串。如果是这样,

od -t x8 -An
,经过base64解码后即可到达:

$ echo -n "7WkoOEfwfTTioxG6CatHBw==" | base64 -d | od -t x8 -An
 347df047382869ed 0747ab09ba11a3e2
$ 

6
投票

输出不带换行符的十六进制代码:

echo "<BASE64>" | base64 -d | hexdump -v -e '/1 "%02x" '


0
投票

如果您确实只需要 Base64 格式的原始十六进制序列,我建议

echo "7WkoOEfwfTTioxG6CatHBw==" | base64 -d | xxd -p > text.hex

通过这种方式,您将拥有一个具有精确十六进制序列的文件。

© www.soinside.com 2019 - 2024. All rights reserved.