管道dd到sha256sum

时间:2017-05-26 12:30:27

标签: sha256 dd

我需要获取一个二进制文件块的sha256哈希值。 我为这个任务写了一个小shell脚本:

dd if=$1 skip=$2 count=$3 bs=1 | sha256sum

当我测试它时,我得到以下结果:

bernardo@bernardo-ThinkCentre-Edge72:~$ ./test.sh test.bin 10 20
20+0 records in
20+0 records out
20 bytes (20 B) copied, 0,000100981 s, 198 kB/s
7d9330a7c51eabe36a81a6cff308ac4d2035e63d7a356fc112f4fcd16208f43d  -

这是否意味着哈希仅基于dd的块输出,还是使用dd的反馈“20 + 0记录......”?

1 个答案:

答案 0 :(得分:0)

这是实际的块流哈希(不包括哈希中的STDOUT文本)。您可以通过将内容转储到单独的文件并使用of =选项校验该文件来验证这一点。您将获得相同的哈希结果。

你也可以散列几个0出的块,你会发现相同的散列结果枚举了不同的计数增量输出 (意思是它在计算之外)。

即。 root @ host:〜#dd if = / dev / sda count = 2 bs = 1M | sha256sum #Hash前两个块作为单个块

输入/输出2 + 0记录 复制了2097152个字节(2.1 MB),0.0121433 s,173 MB / s 2e7e3388326c978b7b08d884ad3f737eb8ca6bce3fe57d7294ca96a768da6d81 -

root @ host:〜#dd if = / dev / sda count = 2 bs = 1M>> / some_nonexistent_file&& sha256sum / some_nonexistent_file #Write和hash输出流结果。

输入/输出2 + 0记录 复制2097152字节(2.1 MB),0.00182897 s,1.1 GB / s 2e7e3388326c978b7b08d884ad3f737eb8ca6bce3fe57d7294ca96a768da6d81 / some_nonexistent_file