Вы можете использовать алгоритм кодирования/декодирования, основанный на преобразовании чисел в другую систему счисления. Вместо стандартной десятичной системы счисления (от 0 до 9), вы можете использовать пользовательскую систему счисления, состоящую из букв и цифр. Вот пример реализации на PHP: ```php function encodeNumber($number) { $base = 36; // Общее количество символов (10 цифр и 26 букв) $charset = '0123456789abcdefghijklmnopqrstuvwxyz'; // Диапазон символов $result = ''; while ($number > 0) { $remainder = $number % $base; $result = $charset[$remainder] . $result; $number = (int)($number / $base); } return $result; } function decodeNumber($encoded) { $base = 36; $charset = '0123456789abcdefghijklmnopqrstuvwxyz'; $result = 0; $length = strlen($encoded); $power = 0; for ($i = $length - 1; $i >= 0; $i--) { $char = $encoded[$i]; $value = strpos($charset, $char); $result += $value * pow($base, $power); $power++; } return $result; } // Пример использования $number = 56789; $encoded = encodeNumber($number); echo $encoded; // Выводит "4f9" $decoded = decodeNumber($encoded); echo $decoded; // Выводит "56789" ``` Вы можете использовать эту функцию `encodeNumber` для кодирования 5-6 значных чисел и функцию `decodeNumber` для их декодирования обратно. Обратите внимание, что система счисления здесь состоит из цифр от 0 до 9 и букв от a до z (всего 36 символов), что позволяет кодировать числа до 36^3 - 1 (или 46655). Используя этот подход, вы сможете сократить длину закодированных чисел и скрыть исходные значения чисел, основываясь на используемой системе счисления.
https://3v4l.org/REX9l
Здесь пример алгоритма: https://programforyou.ru/calculators/number-systems Согласно стандарту RFC3986 (https://www.ietf.org/rfc/rfc3986.txt), для идентификаторов можно использовать символы от 0 до 9, от a до z, от A до Z, а также тире, точку, подчеркивание и тильду. Всего получается 66 символов, что дает 287496 различных комбинаций для трехсимвольной строки. Этого недостаточно для всех шестизначных чисел, но достаточно для хранения всех пятизначных чисел. Дополню предыдущие ответы: можно создать базу данных или файл, в котором сохранять уже существующие строки символов и назначать им уникальные цифровые идентификаторы. Например, 1: hsgeiV, 2: jsksGs и т.д. При запросе можно искать соответствующую пару символов по цифровому идентификатору. Если количество возможных вариантов превышает количество трехсимвольных строк, можно удалять старые неактуальные коды или расширить диапазон символов. Если использовать кодирование base64, можно получить еще больше вариантов символов для хранения данных. Если трехсимвольной строки недостаточно, можно рассмотреть возможность использования четырех символов. В PHP есть функция base_convert, которая может пригодиться для этой задачи (ссылка: php.net/base_convert). Также можно использовать системы исчисления с большим основанием, например, в системе с основанием 64 будет достаточно символов (ссылка на калькулятор: https://calculatori.ru/perevod-chisel.html).