2010-09-22 123 views
4

我正在尋找一種計算密碼SHA-256散列的快速方法,因此我可以將一些測試數據上傳到我們使用Spring Security進行身份驗證的數據庫中。Linux命令行SHA-256哈希不同於在線工具?

首先,我找到了Linux工具sha256sum,並再次運行它密碼「admin」,並得到了這樣的結果:

fc8252c8dc55839967c58b9ad755a59b61b67c13227ddae4bd3f78a38bf394f7 

然後我嘗試了幾個在線服務(樂趣):

http://www.xorbin.com/tools/sha256-hash-calculator http://www.fileformat.info/tool/hash.htm?text=admin

無一不給了我這個非常不同的結果:

8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918 

他們爲什麼不同,哪個是正確的?

+1

你確定第一個散列是256位嗎?它只有160位。第二個似乎是合理的,其256位。 – 2010-09-22 19:53:27

+0

@曼努埃爾 - 是的,我把它弄混了......固定。 – HDave 2010-09-23 00:23:18

+0

可能的[從Linux命令行生成sha256]的副本(http://stackoverflow.com/questions/3358420/generating-a-sha256-from-the-linux-command-line) – legoscia 2013-07-26 15:46:06

回答

15

我在做類似的事情時遇到了這個問題。

我在做什麼就像echo string | sha256sum,我想。

當我通過php哈希生成器運行時,我會得到不同的結果。原因是因爲添加了回聲的新行。

我不知道你是否使用回聲,但如果你嘗試echo -n string | sha256num

+2

+1 for'echo - N'。 – 2010-09-22 19:58:05

+0

在荷馬辛普森的不朽之詞--- DOH! – HDave 2010-09-23 00:22:35

+0

救了我拔出我的頭髮!謝謝 :) – Silas 2016-01-28 16:36:15

5

根據我的Mac OS X上的echo -n "admin" | shasum -a 256,後面的說法是正確的。請注意,您需要執行echo -n,否則在散列的字符串中也有\n。由於shasum是一個Perl腳本,你可能也會這樣做。如果是這樣,請嘗試使用它。