gpt4 book ai didi

python - 为什么base64解码字符串在Python2.7和Linux中不一样

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:11:13 31 4
gpt4 key购买 nike

我在 Linux 中有以下命令,文件 test64.dat 中的 base64 编码字符串 'rITqHhVbOjGIWelaJbg=='。使用的命令 -

# base64 -d -i test64.dat >> test.dat
# echo "IV=" `hexdump test.dat | head -1 | cut -f 2- -d ' ' | sed s/' '//g ` >> abc.txt
# cat abc.txt
IV= 84ac1eea7515e86c21c6a5676f6b6ec9

我想使用 python base64 模块来解码与 test64.dat 中相同的字符串,我试过下面的代码

hexdump.dump(base64.b64decode('rITqHhVbOjGIWelaJbg==')) 

输出为。

'AC 84 EA 1E 15 5B 3A 31 88 59 E9 5A 25 B8'

谁能告诉我为什么 base64 解码输出不同,我做错了什么吗?

最佳答案

这里有两个问题:

1) 您的输入无效。它的末尾有太多 =,因此 Linux 输出包括“base64:无效输入”,您随后可以愉快地将其解码为十六进制。

2) hexdump 没有提供您真正想要的格式;它将它视为字节对序列,并反转每一对。例如,“ABCD”的输入最终默认输出“4241 4443”——注意 42 在 41 之前,44 在 43 之前的顺序。

修复输入后,您可以将输出格式传递给 hexdump 以提供您想要的格式

echo rITqHhVbOjGIWelaJbg= | base64 -d | hexdump -e '16/1 "%02X " "\n"'

输出:

AC 84 EA 1E 15 5B 3A 31 88 59 E9 5A 25 B8

关于python - 为什么base64解码字符串在Python2.7和Linux中不一样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36686599/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com