我需要获取一个二进制文件块的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记录......”?
答案 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