使用C语言从字符串生成散列代码(保存在int中)

时间:2013-01-07 15:07:12

标签: c hash

我想从字符串中生成一个哈希码作为int。

是否有预定义的算法?在C?

中有那些算法的实现吗?
char name[100]="langage c"

将该name缓冲区的哈希码生成为整数变量

int hash_code;

类似的东西

int algo_hash(char *name) {
    //hash algorithme
}
hash_code = algo_hash(name);

寻找可能的简单代码

2 个答案:

答案 0 :(得分:2)

一般技术称为“hashing”。如果你有一个知道的字符串列表,你可以使用工具gperf为它们生成一个完美的哈希函数。

如果字符串是随机的,那么在具有这些约束的一般情况下这是不可能的。您可以使用SHA-1哈希算法,但是会从字符串中生成160位数,并且没有100%保证值是唯一的(与SHA-1的冲突只是非常不可能,但并非不可能)。

答案 1 :(得分:1)

我相信您需要的是实施hashing。它仍然不是唯一的 - 我怀疑你能避免碰撞。