是否可以检查是否使用SHA1生成哈希并且是否是有效哈希?

时间:2014-06-19 13:25:32

标签: c# sha hmacsha1

我遇到了一个问题,我想验证使用SHA1生成的哈希。是否可以进行逆向工程并确定哈希是否是使用HMACSHA1算法生成的?

2 个答案:

答案 0 :(得分:1)

如果您拥有经过哈希处理的数据,则可以对该数据使用SHA1哈希值并比较哈希值以查看它们是否相同。如果它们相等则最初使用SHA1。

简而言之,您无法通过对哈希函数进行逆向工程来反向。

答案 1 :(得分:1)

不,哈希码中没有任何内容可以告诉您使用什么算法来创建它。任何强哈希码算法都专门设计为不包含哈希码中的任何可跟踪元数据。没有特定的标记将哈希码标识为哈希码,或者使用了什么样的算法。

基本上,哈希算法尝试使用所有输入作为种子来创建强pseuo-random数。输出尽可能随机,没有可识别的模式可用于识别输入数据或算法。

如果您有用于创建哈希码的输入数据,则可以重新创建并比较结果。但是,如果输入中只有一个位不同,则会得到完全不同的哈希码,因此输入必须完全相同。