Уникальный?Не возможно, извините .
Давайте подробнее рассмотрим:
С 18 символами, даже если бы мы предполагали только 128 возможных символов ASCII (7 бит), вы получили бы 128 ^ 18 возможных строк (иЯ даже не буду рассматривать возможность более коротких строк!), Что составляет около 8E37 (8 и 37 нулей).
С 4-байтовым целым числом вы получаете 256 ^ 4 возможных целых чисел, которыепримерно 4E9 (4 миллиарда).
Итак, у вас примерно на 4E28 больше строк, чем у целых чисел;у вас не может быть уникального сопоставления.
Поэтому вы обязательно столкнетесь с коллизией, как только введете 4294967297-й ключ, но можно столкнуться с одним, как только вы введете более одного.
Смотри также: http://en.wikipedia.org/wiki/Pigeonhole_principle