Звучит так, как будто вы ищете какие-то "классические криптографические" решения.
ЗАМЕНЯЮЩИЕ ШИФРЫ - это кодировки, в которых один символ заменяется другим. Например. A-> Y, B-> Q, C-> P и т. Д. «Цезарь Шифр» - это особый случай, когда порядок сохраняется, а «ключ» - это смещение. В случае rot13 / 47 «ключ» равен 13 или 47 соответственно, хотя это может быть что-то вроде 3 (A-> D, B-> E, C-> F, ...).
ТРАНСПОЗИЦИОННЫЕ ШИФРЫ - это те, которые не заменяют буквы, но которые переставляют буквы заранее определенным способом. Например:
CRYPTOGRAPHY
может быть записано как
C Y T G A H
R P O R P Y
Таким образом, зашифрованный вывод создается чтением двух строк слева направо
CYTGAHRPORPY
Другим свойством rot13 / 47 является то, что оно ОБРАТНО:
encode(encode(plaintext)) == plaintext
Если это свойство, которое вы хотите, вы можете просто XOR сообщение с известным (ранее определенным) значением XOR. Затем XOR-шифрованный текст с тем же значением вернет исходный открытый текст. Примером этого может служить функция memfrob , которая просто XOR буфер с двоичным представлением числа 42.
Вы также можете проверить другие формы кодирования, такие как Base64 , если это ближе к тому, что вы ищете.
!! Отказ от ответственности - если у вас есть данные, которые вы на самом деле пытаетесь защитить от кого-либо, не используйте ни один из этих методов. Хотя все эти методы интересны, их просто тривиально.