2010-08-13 49 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