ien, насчёт «супербыстро» - в ряде случаев для строк, например при хэшировании словарей естественных языков, есть решение которое даёт возможность осуществлять добавление/удаление/доступ со сложностью везде O(1).
Вот набросок (особо не тестировал), можете приспособить его к вашей задаче.
если надо разные хеши для всех строк одной длины, то таким хешем может быть только сама строка.
невозможно каждому числу от 1 до 1000000 дать уникальные номера от 1 до 100.
Первую начал проверять — хеш достаточно хорош. Второе не проверял, но создатель говорит, что это отменная вещь.
adler32 — занятный алгоритм...
Что касается длины строки... То, как известно, все зависит от алфавита. Длина строки может быть 30, но если там используются символы только 'a' и 'b', то больше 2^30 вариантов не получится. А такие строки можно перенумеровать уникальным 32-битным целым.