JenkinsOneAtATime32Bit

#include <Windows.h>

UINT32 HashStringJenkinsOneAtATime32W(PWCHAR String)
{
    UINT32 Hash = 0;

    while (*String)
    {
        Hash += (UINT16)*String++;
        Hash += (Hash << 10);
        Hash ^= (Hash >> 6);
    }

    Hash += (Hash << 3);
    Hash ^= (Hash >> 11);
    Hash += (Hash << 15);

    return Hash;
}

INT main(VOID)
{
    WCHAR StringHashExample[] = L"Hash This String";
    UINT32 Hash = 0;

    Hash = HashStringJenkinsOneAtATime32W(StringHashExample);

    return ERROR_SUCCESS;
}

Last updated