Код: Выделить всё
base64.urlsafe_b64encode(hashlib.md5(os.urandom(128)).digest())[:8]
Чтобы быть понятнее, я пытаюсь добиться простейшей возможной обфускации имен файлов, загружаемых в хранилище. .
Я понял, что 8-значная строка, достаточно случайная, будет очень эффективным и простым способом хранения десятков тысяч файлов без возможных коллизий, если она реализована правильно. Мне не нужна гарантированная уникальность, только достаточно высокая вероятность конфликта имен (речь идет только о тысячах имен).
Файлы хранятся в параллельной среде, поэтому увеличиваются общий счетчик достижим, но сложен. Хранение счетчика в базе данных было бы неэффективно.
Я также сталкиваюсь с тем, что функция rand() при некоторых обстоятельствах возвращает те же псевдослучайные последовательности в различные процессы.
Подробнее здесь: https://stackoverflow.com/questions/134 ... dom-string
Мобильная версия