c++ - Win32 中任何易于使用的散列函数来散列 ASCII 字符串?

标签 c++ windows security hash

<分区>

Any easy-to-use hash function in Win32 to hash an ASCII string?

我正在 Windows 中寻找一个简单的散列函数(最好是 kernel32.dll 或其他一些广泛使用的 DLL)来将 ASCII 字符串散列成例如 DWORD'是吗?

该函数应该从 C/C++ 或 x86 汇编中调用。

我一直在谷歌搜索,但似乎没有适合我需求的功能?

有什么建议吗?

最佳答案

这里是示例程序,演示了 Shlwapi.dllHashData 函数的使用。

这个函数非常简单和灵活(无论是输入还是输出)。

它基本上执行消息摘要。

#include <stdio.h>
#include <Shlwapi.h>

using namespace std;

#define HASH_LEN 32

int main(int argc, char* argv[])
{
  const char* data = "foobarbaz";
  unsigned char hash[HASH_LEN] = {0};

  HashData((LPBYTE)data, strlen(data),(LPBYTE)hash, HASH_LEN);

  printf("Hash: ");

  for (int i = 0; i < HASH_LEN; i++) {
    printf("%d ", hash[i]);
  }

  printf("\n");

  return 0;
}

关于c++ - Win32 中任何易于使用的散列函数来散列 ASCII 字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40906079/

相关文章:

security - Hadoop 上的 Kerberos

使用 .htaccess 处理 PHP 错误

c++ - shared_ptrs 和三法则

连接 2 个 unicode 字符串 - 如何做到这一点?

python - 使用 MySQL 管理 Web 应用程序的用户身份验证

linux - Windows 组件的 Docker 镜像

c++ - 事件日志最旧记录号

c++ - 尝试将派生类对象地址分配给基类指针 vector

c++ - 在具有已删除复制构造函数的类的元素的数组初始化中需要但未使用的 move 构造函数

c++ - 找出后缀数组的两种算法中哪一种更快,为什么?