手动/数学地进行哈希计算

问题描述 投票:0回答:4

我想学习如何手动进行哈希处理(就像用纸和铅笔一样)。这可行吗?任何关于在哪里了解这一点的指示将不胜感激。

hash
4个回答
3
投票

这取决于您想要执行的哈希。您可以非常轻松地手动执行一个非常简单的哈希 - 例如,一个简单的方法是获取字符串的 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
投票
开始

哈希函数


1
投票
https://en.wikipedia.org/wiki/CRC32#Computation

. 您可以设置比标准更小的长度(通常是 32 位),以使事情变得更容易。


0
投票

将您的字符视为数字基数,然后转换基数 10,然后转换基数 64

© www.soinside.com 2019 - 2024. All rights reserved.