在这篇文章和这个XKCD中,它们都将密码数据显示为十六进制分组。
但是,在文件中它是 Base64 编码的。我可以使用什么来将该输出与 bash 脚本相匹配?我试过了:
echo -n "7WkoOEfwfTTioxG6CatHBw==" | base64 -d
echo -n "7WkoOEfwfTTioxG6CatHBw==" | openssl enc -d -base64
他们在做什么,我如何将它们解码为十六进制块?
如果我理解正确的话,我认为需求是将base64编码的字符串转换为8字节块(16个十六进制数字)的十六进制字符串。如果是这样,
od -t x8 -An
,经过base64解码后即可到达:
$ echo -n "7WkoOEfwfTTioxG6CatHBw==" | base64 -d | od -t x8 -An
347df047382869ed 0747ab09ba11a3e2
$
输出不带换行符的十六进制代码:
echo "<BASE64>" | base64 -d | hexdump -v -e '/1 "%02x" '
如果您确实只需要 Base64 格式的原始十六进制序列,我建议
echo "7WkoOEfwfTTioxG6CatHBw==" | base64 -d | xxd -p > text.hex
通过这种方式,您将拥有一个具有精确十六进制序列的文件。