Обращение к хеш-функции

У меня есть следующая хэш-функция, и я пытаюсь найти способ ее отменить, чтобы найти ключ из хешированного значения.

uint Hash(string s)
{
    uint result = 0;
    for (int i = 0; i < s.Length; i++)
    {
        result = ((result << 5) + result) + s[i];
    }
    return result;
}

Код написан на C #, но я предполагаю, что он понятен.

Я знаю, что для одного хешированного значения может быть более одного ключа, но я не собираюсь найти их все, а только тот, который удовлетворяет хэшу

РЕДАКТИРОВАТЬ:

Строка, которую принимает функция, состоит только из цифр от 0 до 9 и символов «*» и «#», поэтому функция Unhash также должна соблюдать этот критерий.

Любые идеи ? Спасибо.

7
задан 0xFF 24 December 2010 в 02:35
поделиться