2010-08-13 82 views
1

我想學習如何做手工哈希(如紙和鉛筆)。這是可行的嗎?任何有關如何瞭解這一點的指針將不勝感激。做手工/數學哈希

回答

1

這取決於你想要做的散列。您可以非常容易地手動完成一個非常簡單的散列 - 例如,一個簡單的方法是獲取字符串的ASCII值,並將它們加在一起,通常做一些像字符之間左旋的操作。因此,要對字符串「Hash」進行散列,我們將以字母的ASCII值(十六進制)開頭:48 61 73 68。我們將添加這些在一起,我們的旋轉結果卻讓字母間4位(16位字):

0048 + 0061 = 00A9
00A9 < < < 4 = 0A90
0A90 + 0073 = 0B03
B03 < < < 4 = B030
B030 + 68 = B098

結果:B098

用手做一個密碼散列將是一個相當不同的故事。這當然還是有可能的,但將會是溫和的,非常單調乏味的。密碼哈希通常比較複雜一些,並且(更重要的是)幾乎總是有很多「輪迴」,這意味着基本上重複一系列步驟來從輸入到輸出。從經驗談起,只需在調試器中逐步執行SHA-1以確保正確實施它是一種痛苦 - 手工完成這一切將非常糟糕(但正如我所說的,無論如何可能)。

1

您可以通過查看

Hash function

+0

+1以補償無法解釋的downvote。我查看了你鏈接的頁面,它提供了一些很好的哈希函數例子,可以很容易地用手來計算(在Hash函數算法部分)。 – David 2010-08-13 05:09:22