Содержимое URI, которое вы передаете между приложениями, не зашифровано. Это просто бессмысленно. Полагаю, вам не нужно, чтобы стороннее приложение регистрировало ту же схему URI и получало содержимое URI, которые вы отправляете.
Система, выполняющая шифрование, будет бесполезна, поскольку ей придется снова дешифровать URI, прежде чем он будет доставлен в другое приложение. Приложения ожидают получения URI, которые они могут использовать как есть, а не что-то в зашифрованном виде. Поэтому, если система зашифрует ее, будет безопасно, пока она находится в каком-то буфере, ожидающем доставки в конечное приложение. Но никто не будет пытаться вынюхивать его из этого буфера, так как можно легко написать приложение, которое просто получает эти URI.
И шифровать их самостоятельно тоже бессмысленно. Чтобы расшифровать их, вашему приложению необходимо вставить ключ, и ничто не мешает хакеру перевернуть ваше приложение, чтобы получить ключ. И теперь ваше шифрование оказалось бесполезным. Просто не беспокойся об этом.
И если вы транспортируете эти URI по сети, просто используйте SSL. Создание собственной криптографии вместо того, чтобы полагаться на безопасные и хорошо протестированные протоколы и реализации, никогда не будет хорошей идеей.