要执行以下步骤:
- 对 ASCII 值进行 base64 解码。
- 要"啁啾",请附加解码值。
- 在"啁啾
声中生成sha256
#!/bin/sh
a=$(echo MDkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDIgADAoR0WUZBTAkZv0Syvt+g5wGpb/HYHh22zAxCNP+ryTQ=|base64 -d)
b="chirp$a"
echo $b
echo -n $b | sha256sum
我得到的值为: f62e19108cfb5a91434f1bba9f5384f9039857743aa2c0707efaa092791e4420
但预期值为: 6a29cb4....
我错过了什么吗?
对于二进制数据,作为您处理的base64解码数据,我不会过分依赖echo
,而只是通过管道传输内容,如下所示:
<<<'MDkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDIgADAoR0WUZBTAkZv0Syvt+g5wGpb/HYHh22zAxCNP+ryTQ=' base64 -d | cat <(echo -n chirp) - | sha256sum
这给了我你期望的结果,6a29cb438954e8c78241d786af874b1c7218490d3024345f6e11932377a932b6。
在这里,cat
得到两个文件描述符作为参数,第一个流单词"chirp",第二个转发上一个命令的 stdout(base64 -d
(