2017-10-05 51 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! –