我想将Windows路径名转换为唯一整数.
例如:
对于路径名C:\ temp\a.out,如果我添加所有字符的ascii值,我得到1234.但是其他一些路径也可以生成相同的数字.那么,为不同的路径名生成唯一数字的最佳方法是什么?
查看Hash函数.执行哈希时,请务必考虑大多数Windows文件名的不区分大小写的特性.
最有可能的是,您使用的语言提供了一个库函数(或函数集合),它可以获取字符串(或只是数据)的哈希值. SHA1很受欢迎,碰撞很少.
在Stackoverflow上有很多与哈希函数有关的问题.为了帮助您入门,只需搜索" 哈希函数 "即可.对于您的情况,这可能是一个有用的SO问题:什么是高性能字符串散列函数,导致32位整数具有低冲突率?.
有更多可能的路径名而不是整数,因此你不能拥有真正的唯一性.你可以解决类似MD5哈希的问题.