是否可以解密 Peter Weinberger 的哈希算法?
我正在尝试编写自己的加密解密函数。我理解哈希值意味着您不能或不应该解密哈希值的概念,但我认为因为算法相对简单,在这种情况下可能可以解密这种哈希值。我已经完成了使用简单旋转的简单加密解密,现在我想尝试一些更困难的事情。
那么是否可以解密彼得温伯格哈希算法产生的哈希值呢?
以下加密函数是 Peter Weinberger 的精确哈希算法,解密是我自己的尝试,但不起作用:
int encrypt(char *s)
{
/* Peter Weinberger's */
char *p;
unsigned int h, g;
h = 0;
for(p=s; *p!='\0'; p++){
h = (h<<4) + *p; printf("Step : ");
if (g = h&0xF0000000) {
h ^= g>>24;
h ^= g;
}
}
return h % 211;
}
std::string decrypt(int v)
{
/* Peter Weinberger's */
unsigned int h, g;
h = 0;
v /= 211;
int s = sqrt(v);
/* Not sure what to do here
for(p=s; *p!='\0'; p++){
}
*/
return string(h);
}