Увеличьте диапазон целочисленных значений до 26-значного числа из 26 цифр, но непредсказуемо

Я хочу спроектировать сокращение URL для конкретного варианта использования и типа конечного пользователя, на которого я нацелился. Я решил, что я хочу, чтобы URL-адреса были сохранены внутри в соответствии с автоматически увеличивающимся целочисленным ключом. Однако также требуется, чтобы ключ был представлен пользователям в URL-адресе как шестизначное основание 26 (a-z * 6), и невозможно предсказать, какой базовый ключ URL-адреса основан на возрастающем целочисленном ключе. Другими словами, первый ключ URL-адреса не должен быть aaaaaa, а затем в следующий раз, когда кто-то создает URL-адрес, он не должен быть aaaaab и т. Д., И в нем не должно быть цикла, генерирующего случайный и пересылающего данные в базу данных, чтобы увидеть, существует ли он уже повторно.

Вторая часть требований (URL-адреса в базе 26, которые посторонний предсказать сложно) является более интересной. В идеале я хотел бы, чтобы какое-то алгоритмическое 1-1 отображение всех чисел в диапазоне 26 ^ 6 на другое число в том же диапазоне, которое я могу затем просто напечатать в базе 26, и которое я могу отменить алгоритмически и не делать нужно хранить в отдельной таблице, когда я хочу посмотреть URL. Как я могу сделать это?

Ответы на вопрос(8)

Ваш ответ на вопрос