Есть алгоритм, где шифрованный текст разный, а дешифрованный одинаковый?
Обычная асимметричная схема.
Баш-скрипт в URL передаёт случайную строку запроса, сервер шифрует её своим ключом, передаёт обратно скрипту. Если после расшифровки парным ключом строки совпали - бинго.
Под вашу задачу подойдет много алгоритмов. Вопрос только в устойчивости. Не хотите с криптографией возиться - пожалуйста - считайте например банальную сумму ASCII кодов - нужно чтобы она была равна константе. Можно дальше развить тему с формулой какой нить. Опять таки - простой буквенный константный код, "разбавленый" рандомом (смотрим только нечетные символы) и т.д. и т.п. В общем то постановка в заголовке неверна - вам вообще не нужно чтобы был "дешифрованый текст". Вам просто нужно иметь возможность генерировать n строк, которые подходят под одно условие.