windows - Shlwapi.dll中的HashData是基于什么哈希算法?

标签 windows algorithm winapi hash

有谁知道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/

相关文章:

algorithm - 覆盖数字组合

c++ - 注册后如何设置窗口的背景颜色?

c++ - 为什么我会收到错误信息并且...?

c++ - 我需要帮助尝试使用 MinGW 为 GLFW 编译一个简单示例

algorithm - 最大流量应用程序 : rearrange matrix

c - winapi创建快捷方式失败

c++ - 处理 WM_KEYDOWN

c++ - C++比较两个文件

windows - 如何删除 Azure 上托管的 Windows 10N 中的 Hyper-V 角色

javascript - javascript中两个对象数组的算法混合信息?