Не согласен с посылом. Автор ведь не это спрашивает. Стримы имеют узкое назначение. И хотя они как Тьюрингова машина обладают полнотой - но некоторые задачи на них скорее всего будут архитектурно некрасивы. Так-же как и не очень красиво выглядит отработка исключений внутри стрима.
Попробуйте взять web-crawler и переписать его на стримах.
Есть семантическая путаница. В криптографии под термином "открытй текст" подразумевают любые исходные данные подлежащие шифрованию. И шифро-текст - это уже результат этого процесса. Тоесть мы всегда работаем в binary-mode. И оперируем BLOB.
А теперь главный вопрос. Каким образом текстовый файл становится двоичным. Это криптография не расматривает. Ей это просто неинтересно. Это не шифрование а кодирование. Но если вы пользователь С++ то знаете что string может быть либо однобайтным либо двухбайтным потоком байт и дальше действуйте самостотельно по конверсии из одного формата в другой. Вообще - пофиг как вы сделаете из строки BLOB. Главное - что на выходе у вас будет стоять симметричное обратное преобразование. Из BLOB в String. Функций - уйма. Берите любую т.к. это софт ваш и вам надо строить внутренний протокол представления строк в вашей системе.
Я делал бэкап на гос-предприятиях для Oracle и получал за это деньги. Что ты делаешь - я не знаю. Просто тебе очень хочется чтобы сбоку был Zabbix. Я не могу тебя остановить. Конечно внедряй свой Zabbix. Неужели я стану тебя бить по рукам или как-от запрещать? Оно мне надо? Просто у Zabbix, как и у всех вещей в мире есть своё предназначение. Например смотреть сколько свободного места на диске. Вот и смотри себе. Просто первичная задача - сделать backup. А вторичная - мониторить всю оставшуюся вселенную. И спросят с тебя за бэкап а не за всю вселенную.
Здесь КМК автоматизация опасна. Если ты трансформируешь SQL-запрос то его надо тут-же проверить что он корректен и не сломал логику. Это очень нудно и геморно. Любой перенос строки может поломать все
что раньше работало. Тем более что чистого SQL нигде не сущетсвует а есть только диалекты под целевые
DBMS (MySQL/Postgres) и именно эти диалекты надо учитывать.
Тебе мониторинг при такой постановке не нужен. Мониторинг - это когда из внешней среды (сеть) прилетают миллион событий и время этих событий ты не контролируешь.
А тебе нужен банальный отчет о бэкапе. Который в себе содержит
1. Дату последнего файла.
2. Размер архива.
Все. Больше мониторить тебе нечего т.к в хранилище больше не будет никаких изменений. У тебя 100% синхронный процесс. Сделал бекап 1 раз в сутки. И отправил себе на почту отчот.
Я хочу вам сказать что существуют предметные области (шахматы) где не существуют прямой формулы расчета решения. Есть просто некая итеративность которую нужно последовательно исполнять до достижения цели. Например задачу 8 ферзей решал математик Гаусс. Он искал формульное решение но не нашел. Его просто не существует.
Поэтому я вас прошу - будьте более грамотны в формировании ваших желаний. И воздержитесь от радикальных заявлений что это брут или не брут. Может так оказаться что вращательный алгоритм будет единственным и примлемым для вашей задачи.
Формулы скорее всего нет. Есть итеративный алгоритм. Все символы вращаются по кругу.
На 1 шаг. Потом из хоровода исключается 1-й символ. Вращаются все остальные. И так далее
пока хоровод не станет пустой.
Есть готовые имплементации этого алгортима на C++ STD. И на других языках разработки
в библиотеках коллекций.
Эту версию просто надо проверить. Я ловил такие глюки в 2010 когда держал на одной рабочей станции Windows-2003 Server и Suse Linux Ent. Решением был отказ от хибернации на обоих ОС либо просто как говорил Арнольд Шварцнеггер - не забывать первые два правила.
Stalker_RED, да да тоже самое доказывали по поводу BrainFuck. Но я писал в топике про оптимизацию использования памяти. Програмист - это не просто кодер на API. Это еще и хозяйственник. И если он видит разницу между потоковыми файловыми операциями и прочими и если у него есть возможность выбора - он выберет right way.
Если программисту пофиг - вы знаете. Когда пофиг - это зависающий Windows10 и Android в котором вечно не хватает оперативы сколько ее на ставь. И когда ругань пользователя направленна на это явление - она по своей природе направлена именно против таких программистов которым пофиг на каком инструменте делать split или sort текстового файла.