Действительно, если строки все разные по длине, то длину и взять.
Если возможны и одинаковые по длине строки, то добавить в хеш несколько символов из строки, позиции которых брать псевдослучайно (но строго детерминированно и всегда одинаково!). Для обычных сильно не совпадающих строк работать будет быстро (фактически

), для хорошо совпадающих - зависит от выбора позиций и тут уж без априорной статистики о самих строках не обойтись (например предъявив все

возможных перестановок строк длины

из алфавитап в

символов мы собъём любой возможный хеш).
Взяв не фиксированное количество символов в хеш, а например

символов (в позициях с простыми индексами или даже с индексами

) получим время

. Тут для усложнения можно выбирать разные функции индексов в зависимости от значения

, на

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