Как я могу установить максимальную длину хэшидов?

Я использую Hashids(http://hashids.org/python/) в своем проекте Django.

Я хочу создать хеш фиксированной длины.

Но Hashids поддерживает только min_length:

hash_id = Hashids(
    salt=os.environ.get("SALT"),
    min_length=10,
)

Как я могу установить фиксированную длину (скажем, 10 символов) hash_id?


person user3595632    schedule 09.10.2016    source источник


Ответы (2)


Хотя я не использовал версию библиотеки для Python, я все еще чувствую, что могу ответить, поскольку я поддерживаю версию .NET, и они в основном используют один и тот же алгоритм.

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

Я предполагаю, что сегодня это невозможно с библиотекой.

person ullmark    schedule 13.10.2016

Вы можете установить «min_length» в хэшидах

Например:

hashids = Hashids(min_length=16, salt="my salt")
hashid = hashids.encode(1) # '4q2VolejRejNmGQB'

для получения более подробной информации нажмите здесь

person Harsh    schedule 17.09.2018