将路径名转换为唯一编号的算法

cha*_*par 2 algorithm path

我想将Windows路径名转换为唯一整数.

例如:

对于路径名C:\ temp\a.out,如果我添加所有字符的ascii值,我得到1234.但是其他一些路径也可以生成相同的数字.那么,为不同的路径名生成唯一数字的最佳方法是什么?

str*_*ger 12

查看Hash函数.执行哈希时,请务必考虑大多数Windows文件名的不区分大小写的特性.

最有可能的是,您使用的语言提供了一个库函数(或函数集合),它可以获取字符串(或只是数据)的哈希值. SHA1很受欢迎,碰撞很少.

在Stackoverflow上有很多与哈希函数有关的问题.为了帮助您入门,只需搜索" 哈希函数 "即可.对于您的情况,这可能是一个有用的SO问题:什么是高性能字符串散列函数,导致32位整数具有低冲突率?.


Jim*_*mmy 8

有更多可能的路径名而不是整数,因此你不能拥有真正的唯一性.你可以解决类似MD5哈希的问题.

  • @rjack:海报在哪里说整数可以有多大?例如,Python 3 支持无限长度的整数:http://docs.python.org/3.0/reference/datamodel.html#objects-values-and-types (2认同)