首页 > 解决方案 > 生成的 SHA256 值与预期的 SHA256 值不同

问题描述

将执行以下步骤:

  1. 对 ASCII 值进行 base64 解码。
  2. 要“啁啾”附加解码值。
  3. 在“chirp<decoded_value>”上生成 sha256
    #!/bin/sh
    a=$(echo MDkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDIgADAoR0WUZBTAkZv0Syvt+g5wGpb/HYHh22zAxCNP+ryTQ=|base64 -d)
    b="chirp$a"
    echo $b
    echo -n $b | sha256sum

我得到的值是:f62e19108cfb5a91434f1bba9f5384f9039857743aa2c0707efaa092791e4420

但期望值为:6a29cb4....

我错过了什么吗?

标签: bashencryptioncryptographysha

解决方案


对于二进制数据,作为您处理的 base64 解码数据,我不会过多依赖echo,而只是通过管道传输这些内容,如下所示:

<<<'MDkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDIgADAoR0WUZBTAkZv0Syvt+g5wGpb/HYHh22zAxCNP+ryTQ=' base64 -d | cat <(echo -n chirp) - | sha256sum

这给了我您期望的结果,6a29cb438954e8c78241d786af874b1c7218490d3024345f6e11932377a932b6
在这里,cat获取两个文件描述符作为参数,第一个流式传输单词“chirp”,第二个转发前一个命令的标准输出 ( base64 -d)


推荐阅读