C 为树的每个节点生成唯一密钥的最佳哈希函数是什么?

C 为树的每个节点生成唯一密钥的最佳哈希函数是什么?,c,hash,tree,md5,sha256,C,Hash,Tree,Md5,Sha256,我有一个树形结构。我想为密钥的每个节点生成一个唯一的密钥,这样冲突最小。 例如: 我需要为树层次结构中的每个节点生成一个唯一的键 Key strings hash ------------------------------------------------- a - ? a/b ? a/b/a

我有一个树形结构。我想为密钥的每个节点生成一个唯一的密钥,这样冲突最小。 例如:

我需要为树层次结构中的每个节点生成一个唯一的键

            Key strings                hash
-------------------------------------------------
a -                                    ?
a/b                                    ?
a/b/a                                  ?
a/b/a/v=50                             ?
a/c/                                   ?
a/c/b                                  ?
a/c/b/v="a string"                     ?
a/c/a                                  ?
a/c/a/v==2.45                          ?
我计划使用md5或sh4256从键字符串生成哈希。问题是还有比这更好的方法吗?我的意思是一个算法,它可以使一个字符串的关键是唯一的?
或者,考虑到应用程序在计算能力有限的嵌入式系统上运行,有没有比md5或sha256更好的功能?

如果发生冲突,您会怎么做?冲突是最小的还是唯一的?也就是说,是一个快速散列,它发生冲突的几率很低,但实际上甚至可以发生冲突,好吧,还是您只是在寻找最快的加密散列?唯一唯一唯一的密钥是字符串本身。哈希函数be definition将生成冲突。@Ry:最初,我考虑使用路径字符串本身。问题是在真实的word应用程序中,我的路径“a/b/c../”可能很大,并且希望将其映射到128或256个字符的字符串。理想情况下,如果发生冲突,键应该是唯一的。我必须添加不同的逻辑来生成新键。@PaulOgilvie“be[sic]definition,will generate collisions”:从技术上讲,这是不正确的。也有。
            Key strings                hash
-------------------------------------------------
a -                                    ?
a/b                                    ?
a/b/a                                  ?
a/b/a/v=50                             ?
a/c/                                   ?
a/c/b                                  ?
a/c/b/v="a string"                     ?
a/c/a                                  ?
a/c/a/v==2.45                          ?