Каждый пользовательский объект в моей базе данных имеет инкрементный идентификатор (1, 2, 3, ...). URL-адрес для просмотра профиля пользователя содержит идентификатор объекта пользователя; например http://www.example.com/users/1. Таким образом, каждый может видеть, сколько пользователей на сайте, как быстро растет пользовательская база и т. д. Я не хочу разглашать эту информацию.
Я хотел бы преобразовать инкрементный идентификатор в строку фиксированной длины в формате Base58, чтобы URL-адрес выглядел так: http://www.example.com/users/2WNrx2jq184Кроме того, мне нужно обратная функция, которая преобразует строку обратно в исходный идентификатор. Обратную функцию не должно быть легко реконструировать.
Лучший код Python, который я нашел для этой цели, — это https://github.com/JordanReiter/django-id-obfuscator. Это очень хорошо, но в некоторых случаях добавляется 0
и/или .
, что приводит к строкам не в Base58 и не фиксированной длины.
(См. utils.py, строки 24 и 29.)
Как я могу улучшить django-id-obfuscator, чтобы получить запутанные идентификаторы base58 фиксированной длины, или как я могу создать такие запутанные идентификаторы в Python?