Я хочу зашифровать символ из 5 цифр, например. 12345
до 3 символов, возможно ли это?Как закодировать 5-значный номер до строки с тремя символами
ответ
Вы можете сделать это с помощью base_convert.
echo base_convert('12345', 10, 36); // 9ix
и обратно
echo base_convert('9ix', 36, 10); // 12345
Но этот подход имеет ряд ограничений: 46655
Из комментариев можно получить функцию, которая поможет вам преобразовать 5-значный номер без ограничений.
$alphbet_47 = implode(array_merge(range(0, 9), range('a', 'z'), range('A', 'K')));
$alphbet_10 = implode(range('0', '9'));
echo convBase('12345', $alphbet_10, $alphbet_47) . PHP_EOL; // 4kN
// KKK the biggest number of 47 base system. 10 base representation of its is more than any 5 digit number
echo convBase('KKK', $alphbet_47, $alphbet_10) . PHP_EOL; // 103822
function convBase($numberInput, $fromBaseInput, $toBaseInput)
{
if ($fromBaseInput==$toBaseInput) return $numberInput;
$fromBase = str_split($fromBaseInput,1);
$toBase = str_split($toBaseInput,1);
$number = str_split($numberInput,1);
$fromLen=strlen($fromBaseInput);
$toLen=strlen($toBaseInput);
$numberLen=strlen($numberInput);
$retval='';
if ($toBaseInput == '')
{
$retval=0;
for ($i = 1;$i <= $numberLen; $i++)
$retval = bcadd($retval, bcmul(array_search($number[$i-1], $fromBase),bcpow($fromLen,$numberLen-$i)));
return $retval;
}
if ($fromBaseInput != '')
$base10=convBase($numberInput, $fromBaseInput, '');
else
$base10 = $numberInput;
if ($base10<strlen($toBaseInput))
return $toBase[$base10];
while($base10 != '0')
{
$retval = $toBase[bcmod($base10,$toLen)].$retval;
$base10 = bcdiv($base10,$toLen,0);
}
return $retval;
}
Привет @sectus, спасибо за помощь, ваше решение решает мою половину проблемы. У меня есть еще один запрос, теперь, как снова конвертировать '9ig' в '12345', значит, мне также нужно расшифровать, спасибо заранее. –
@sanjaykumar, просто замените аргументы. – sectus
@sanjaykumar, новый функция добавлен. – sectus
- 1. Замените середину строки только тремя символами
- 2. Как получить результат с тремя символами
- 3. git diff: много патчей с тремя символами '@'
- 4. Таблицы с тремя адресами и символами
- 5. emu8086 Assembly Входной сигнал с тремя символами
- 6. ft_min_word_len = 3 нет совпадения с тремя символами
- 7. Использование MySQL Как искать номер с символами
- 8. PHP JSON закодировать поплавок номер
- 9. Как закодировать строку на уникальный номер и декодировать ее
- 10. Вставить тире перед последними тремя символами
- 11. Заменить номер повторяющимися символами
- 12. Формат строки как серийный номер
- 13. Как закодировать номер в строке и затем декодировать его?
- 14. Как закодировать строки с библиотекой EncdDec
- 15. Повторяющийся номер в java до следующей строки
- 16. Запустить файл .py до указанной строки номер
- 17. номер извлечения между символами - grep
- 18. Как закодировать диаграмму ascii (- до% F3)
- 19. Как закодировать скрипт GDB до завершения программы?
- 20. Проведите любой номер строки до номера
- 21. Чтение строки с escape-символами
- 22. Как base-64 закодировать сумму md5 строки?
- 23. Как сравнить номер Строки?
- 24. Найти строки с одинаковыми символами
- 25. Сжатие строки с повторяющимися символами
- 26. Как определить строки unicode с непечатаемыми символами?
- 27. Как разбить строки с двумя символами ('||')
- 28. Создание строки с символами ESC
- 29. Сжатие строки с повторяющимися символами
- 30. Как я могу закодировать панель с тремя кругами, расположенными равномерно на панели с CSS?
Что ............? – Ohgodwhy
Я думаю, вы имеете в виду кодировку. Шифрование осуществляется с помощью ключей. –
У меня есть 5-значное случайное число, например. 12345, мое требование - зашифровать его и показать только 3 символа вместо 5 цифр. Возможно ли это с помощью php, если нет, то мы можем использовать пользовательский encyption без символов ASCII. –