2017-10-05 47 views
0

我正在为学校工作的实验室的一小部分要求我采取一个文件,使用openssl sha256对该值进行哈希值,然后更改1位,重新哈希它并比较这些值。特别是他们要我:试图以二进制形式输出Openssl哈希以便比较比特

“你可以写一个简短的程序计算有多少位是H1和H2之间的相同”

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

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

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

回答

0

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

您可以使用xxd -b hashInBinary.txt来查看散列结果是什么。

+0

谢谢你Marek! –