Правильный ответ: не делай этого. Не выбирайте алгоритм, который шифрует текст в текст.
Вам нужно сделать 2 шага:
- Шифрование (чип текст).
- Кодировка (преобразовать двоичный результат в текст).
Независимо от того, какой метод шифрования вы выберете - важная часть - это то, как вы будете преобразовывать двоичный текст в текстовый. Это означает, что любое шифрование подойдет. Вы можете выбрать DCPCrypt, криптографию Windows - что угодно.
Как преобразовать двоичный файл в текст?
1). Например, вы можете просто избегать плохих символов, поэтому TStrings не будут перепутаны. Выберите специальный символ. Например: # 1.
Теперь, чтобы закодировать строку, замените все # 1 -> # 1 # 2, # 0 -> # 1 # 3, # 13 -> # 1 # 4, # 10 -> # 1 # 5. Этого должно быть достаточно, чтобы TStrings принял это без проблем.
Для декодирования - сделать в обратном порядке: заменить # 1 # 5 -> # 10, # 1 # 4 -> # 13, # 1 # 3 -> # 0, # 1 # 2 -> # 1.
2). В качестве альтернативы, вы можете использовать Base64, как указал mj2008. Base64 - это общеизвестный стандарт. Однако он создает более раздутый текст (по сравнению с предыдущим методом) и может работать немного медленнее (сложное кодирование вместо простой логики поиска и замены).
3). Или вы можете просто написать каждый байт как 2 символа: то есть написать шестнадцатеричный код каждого байта (как это делает BinToHex). Это даже более раздутый, чем base64 (но может быть и самый быстрый), но у него есть преимущество, которое легче реализовать, чем любой другой метод. Вам даже не нужно писать много кода, поскольку в Delphi уже есть подпрограммы BinToHex / HexToBin.