标签: c hash
我想从字符串中生成一个哈希码作为int。
是否有预定义的算法?在C?
char name[100]="langage c"
将该name缓冲区的哈希码生成为整数变量
name
int hash_code;
类似的东西
int algo_hash(char *name) { //hash algorithme } hash_code = algo_hash(name);
寻找可能的简单代码
答案 0 :(得分:2)
一般技术称为“hashing”。如果你有一个知道的字符串列表,你可以使用工具gperf为它们生成一个完美的哈希函数。
如果字符串是随机的,那么在具有这些约束的一般情况下这是不可能的。您可以使用SHA-1哈希算法,但是会从字符串中生成160位数,并且没有100%保证值是唯一的(与SHA-1的冲突只是非常不可能,但并非不可能)。
答案 1 :(得分:1)
我相信您需要的是实施hashing。它仍然不是唯一的 - 我怀疑你能避免碰撞。