有谁知道Shlwapi.dll
中的HashData
是基于什么算法?
我已经尝试查看文档,但它确实没有提供有关底层实现的线索。
我看到 HashData
将来自 {0,1}*
的数据映射到给定的输出大小,因此它让我想起了所谓的哈希函数生成器。
我不需要加密安全散列函数,而只需要一个用于实现某些数据结构的函数。
最佳答案
如果您真的需要知道,在文件 path.c 中的 Wine 源代码树中有一个实现,当前位于 https://source.winehq.org/source/dlls/kernelbase/path.c#4956。 .
这显然是我在这里发现的哈希变体:https://www.rpi.edu/locker/23/000723/parcel/rlt-portlib/lib/SymT/SymT_hash.c
该文件中的注释提供了引用:
This hash function comes the June 1990 issue of Communications of the ACM, volume 33, number 6, pp. 677-680 by Peter K. Pearson. This uses the permutation printed with this article.
使用 Window 的 HashData 函数提供了与 Windows 某些部分使用的哈希的兼容性,尤其是 shell。如果您需要与 Windows 的兼容性或互操作性,这非常有用。否则,它不会是我的哈希函数的首选,如果我认为我可能需要支持其他平台,它也不会被考虑。
关于windows - Shlwapi.dll中的HashData是基于什么哈希算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40962595/