2
我被反向工程通过一个老游戏中使用的存档文件格式,并且发现它使用下面的函数(用手反编译)散列文件名:什么是散列函数?
int hash(char* filename) {
unsigned int a = 0;
int b = 0;
for(int i = strlen(filename)-1; i>=0; i--)
char c = toupper(filename[i]);
a=(a<<5)+(a>>25);
b+=c;
a+=b+c;
}
return a;
}
我想知道,如果这是什么标准,或者如果它只是开发人员随机挑选的东西。
你能告诉我们这是什么游戏吗?相当现代的随机数生成函数基于相同的想法 – 2011-01-06 08:45:09