задача имеет два варианта. :D Первое - либо подсказать какой-то алгоритм шифрования/дешифрования с ключём, или может последовательность действий. Или же подсказать как довести до ума тот алгоритм что есть сейчас, а тут именно затык на стороне пхп.
о второй части подробнее: в клиенте уже есть готовый простой алгоритм, который берёт байты из строки в кодировке ютф-8, производит ними XOR используя байты из строки ключа и потом ещё это упаковывает в base64 для адекватного вида, и потом на бэкенде это надо обратно размотать и ... это не всегда получается, я пока не то что бы спер сильно дебажил что бы понять почему, но есть в общем два проблемных места сразу: сходу не понятно как правильно в пхп расшифровать base64 именно в байты потому что по умолчанию разшифровывает в строку, и второй момент как после XOR в пхп потом грамотно склеить байты в правильную строку