尝试以二进制形式输出Openssl Hash以比较位

时间:2017-10-05 19:30:20

标签: linux hash openssl

我正在上学的实验室的一小部分要求我取一个文件,使用openssl sha256对值​​进行散列,然后更改1位,重新进行比较并比较值。他们特别想要我:

“您可以编写一个简短的程序来计算H1和H2之间的位数相同”

目前输出形式是十六​​进制转储,每当我尝试将-binary添加到openssl命令时,例如:

openssl dgst -sha256 -binary largefile.txt > hashInBinary.txt

我一直在接收无法读取的符号,而不是1和0。在这一点上,我真的不确定如何以任何其他方式处理这个问题。我不明白为什么在添加-binary时我没有收到哈希值的二进制格式(1010101011)。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

基于"我一直在接收无法阅读的符号"我假设你实际上得到了二进制输出。所以1&0和#0。问题是你的编辑器试图以可读的格式表示它,因此它需要某种编码(比方说ascii)。它读取一个字节并将其打印在屏幕上。但是,您希望在二进制级别上查看值,而不是字节级别。

您可以使用xxd -b hashInBinary.txt查看散列的结果。