Бастион V16 - Шифрование
Цитата: OnePunchMan от 11.08.2025, 20:12Здравствуйте.
Вот несколько предложений на Ваше рассмотрение:
Ввод пароля:
- Нажатие клавиши Tab перемещает курсор между полями, например: Если курсор в первом поле для ввода пароля, то нажатие Tab перемещает курсор во второе поле, а после в основное поле для ввода текста.
- Если чекбокс "Показать" активирован, то показывается только одно поле для пароля, и нажатие Tab сразу переводит курсор в поле для ввода текста.
Поле для текста "замерзает":
Сейчас при нажатии кнопки "Шифровать" поле для текста "замерзает", пока не нажмешь кнопку "Расшифровать" или "Очистить". Это неудобно если у вас один пароль на сессию, например:
Вы шифруете сообщение, и отправляет другу в мессенджер. Друг читает, видит что нового пароля нет, зашифровывает своё сообщение тем же паролем и отправляет Вам. Вы переходите в Бастион, но не можете вставить сообщение друга в поле текста, пока не расшифруете своё прошлое сообщение.Горячие клавиши:
Когда окно Бастион активно, было бы удобно управлять с помощью гор. клавиш, например:
Ctrl+Enter — Шифровать
Ctrl+Shift+Enter — Расшифровать
Ctrl+S — Сохранить
Ctrl+O — Открыть
Ctrl+Shift+S — Отправить
Ctrl+W — Очистить
Ctrl+F — Найти
Ctrl+P — Генерировать пароль
Ctrl+Shift+V — Вставить текст из буфера обмена в поле пароля с заменой содержимого
Ctrl+V — Если ни одно поле для ввода не активно, то вставить текст из буфера в текстовое поле с заменой
Или альтернативный вариант:
Ctrl+Shift+P — Вставить текст из буфера обмена в поле пароля с заменой
Ctrl+Shift+V — Вставить текст из буфера в текстовое поле с заменойПоиск работает с ошибками:
- Для русских букв всегда ищет с учётом регистра
- Если перед искомым словом много переносов строк то выделение промахивается
- В поле поиска не работают горячие клавиши (ctrl+v/c/x)
Здравствуйте.
Вот несколько предложений на Ваше рассмотрение:
Ввод пароля:
- Нажатие клавиши Tab перемещает курсор между полями, например: Если курсор в первом поле для ввода пароля, то нажатие Tab перемещает курсор во второе поле, а после в основное поле для ввода текста.
- Если чекбокс "Показать" активирован, то показывается только одно поле для пароля, и нажатие Tab сразу переводит курсор в поле для ввода текста.
Поле для текста "замерзает":
Сейчас при нажатии кнопки "Шифровать" поле для текста "замерзает", пока не нажмешь кнопку "Расшифровать" или "Очистить". Это неудобно если у вас один пароль на сессию, например:
Вы шифруете сообщение, и отправляет другу в мессенджер. Друг читает, видит что нового пароля нет, зашифровывает своё сообщение тем же паролем и отправляет Вам. Вы переходите в Бастион, но не можете вставить сообщение друга в поле текста, пока не расшифруете своё прошлое сообщение.
Горячие клавиши:
Когда окно Бастион активно, было бы удобно управлять с помощью гор. клавиш, например:
Ctrl+Enter — Шифровать
Ctrl+Shift+Enter — Расшифровать
Ctrl+S — Сохранить
Ctrl+O — Открыть
Ctrl+Shift+S — Отправить
Ctrl+W — Очистить
Ctrl+F — Найти
Ctrl+P — Генерировать пароль
Ctrl+Shift+V — Вставить текст из буфера обмена в поле пароля с заменой содержимого
Ctrl+V — Если ни одно поле для ввода не активно, то вставить текст из буфера в текстовое поле с заменой
Или альтернативный вариант:
Ctrl+Shift+P — Вставить текст из буфера обмена в поле пароля с заменой
Ctrl+Shift+V — Вставить текст из буфера в текстовое поле с заменой
Поиск работает с ошибками:
- Для русских букв всегда ищет с учётом регистра
- Если перед искомым словом много переносов строк то выделение промахивается
- В поле поиска не работают горячие клавиши (ctrl+v/c/x)
Цитата: dehote9223 от 12.08.2025, 08:12Добавлена разблокировка и очистка поля с зашифрованным текстом
Нажмите колесом мыши на заблокированное поле, чтобы очистить его для ввода нового текста с тем же паролем.
Это позволяет приступить к шифрованию нового текста, сохраняя уже введенный пароль, без необходимости использовать кнопку "Очистить" или "Расшифровать".Улучшена навигация
Можно ввести пароль в первом поле, нажать Tab для перехода в поле подтверждения, и ещё раз Tab для перемещения курсора в основное поле для шифруемого текста.
Это делает процесс ввода данных значительно быстрее и удобнее.Удобство диалоговых окон
Все окна подтверждения (например, при очистке полей или повторном шифровании) были обновлены.
Теперь они содержат только две кнопки ("ОК" и "Отмена") и корректно закрываются по нажатию клавиши Esc.Исправлен поиск на русском языке
Устранена ошибка, из-за которой поиск текста на кириллице был чувствителен к регистру.
Теперь поиск работает корректно и находит слова независимо от того, заглавными или строчными буквами они написаны (например, поиск "яблоко" найдет и "Яблоко").Добавлена поддержка горячих клавиш
Ctrl + Enter — Шифровать текст.
Ctrl + Shift + Enter — Расшифровать текст.
Ctrl + S — Сохранить текущее содержимое в файл.
Ctrl + O — Открыть файл.
Ctrl + F — Вызвать диалог поиска по тексту.
Ctrl + G — Сгенерировать новый надёжный пароль.
Ctrl + Shift + S — Отправить зашифрованный текст как вложение по электронной почте.
Ctrl + Shift + W — Полностью очистить все поля (текст, пароли).Быстрое дублирование пароля
Добавлена возможность мгновенно скопировать пароль из первого поля во второе (поле подтверждения).
Наведите курсор на второе поле и кликните колесом мыши (средней кнопкой).Содержимое из первого поля полностью заменит любые символы, которые уже были введены в поле подтверждения.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwgOnePunchMan, большое спасибо!
Добавлена разблокировка и очистка поля с зашифрованным текстом
Нажмите колесом мыши на заблокированное поле, чтобы очистить его для ввода нового текста с тем же паролем.
Это позволяет приступить к шифрованию нового текста, сохраняя уже введенный пароль, без необходимости использовать кнопку "Очистить" или "Расшифровать".
Улучшена навигация
Можно ввести пароль в первом поле, нажать Tab для перехода в поле подтверждения, и ещё раз Tab для перемещения курсора в основное поле для шифруемого текста.
Это делает процесс ввода данных значительно быстрее и удобнее.
Удобство диалоговых окон
Все окна подтверждения (например, при очистке полей или повторном шифровании) были обновлены.
Теперь они содержат только две кнопки ("ОК" и "Отмена") и корректно закрываются по нажатию клавиши Esc.
Исправлен поиск на русском языке
Устранена ошибка, из-за которой поиск текста на кириллице был чувствителен к регистру.
Теперь поиск работает корректно и находит слова независимо от того, заглавными или строчными буквами они написаны (например, поиск "яблоко" найдет и "Яблоко").
Добавлена поддержка горячих клавиш
Ctrl + Enter — Шифровать текст.
Ctrl + Shift + Enter — Расшифровать текст.
Ctrl + S — Сохранить текущее содержимое в файл.
Ctrl + O — Открыть файл.
Ctrl + F — Вызвать диалог поиска по тексту.
Ctrl + G — Сгенерировать новый надёжный пароль.
Ctrl + Shift + S — Отправить зашифрованный текст как вложение по электронной почте.
Ctrl + Shift + W — Полностью очистить все поля (текст, пароли).
Быстрое дублирование пароля
Добавлена возможность мгновенно скопировать пароль из первого поля во второе (поле подтверждения).
Наведите курсор на второе поле и кликните колесом мыши (средней кнопкой).
Содержимое из первого поля полностью заменит любые символы, которые уже были введены в поле подтверждения.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
OnePunchMan, большое спасибо!
Цитата: dehote9223 от 12.08.2025, 09:53Добавлена функция сохранения сгенерированного пароля в текстовый файл.
Заменен старый метод получения текста ссылки, который использовал статический массив фиксированного размера (wchar_t linkTextRaw[4096]), на современный подход с использованием динамического контейнера std::wstring.
Предыдущая реализация могла теоретически привести к переполнению стека и аварийному завершению программы, если пользователь кликнул бы на очень длинную гиперссылку (более 4096 символов).
Новый метод полностью устраняет этот риск, так как память выделяется динамически и ровно под размер конкретной ссылки.Ссылка та же
Добавлена функция сохранения сгенерированного пароля в текстовый файл.
Заменен старый метод получения текста ссылки, который использовал статический массив фиксированного размера (wchar_t linkTextRaw[4096]), на современный подход с использованием динамического контейнера std::wstring.
Предыдущая реализация могла теоретически привести к переполнению стека и аварийному завершению программы, если пользователь кликнул бы на очень длинную гиперссылку (более 4096 символов).
Новый метод полностью устраняет этот риск, так как память выделяется динамически и ровно под размер конкретной ссылки.
Ссылка та же
Цитата: OnePunchMan от 12.08.2025, 11:26Доброе утро.
dehote9223, как же быстро вы ответили! Прошло всего 12 часов, а столько изменений! Теперь Бастион стал гораздо удобнее. Большое спасибо.
Доброе утро.
dehote9223, как же быстро вы ответили! Прошло всего 12 часов, а столько изменений! Теперь Бастион стал гораздо удобнее. Большое спасибо.
Цитата: dehote9223 от 12.08.2025, 12:05OnePunchMan, пожалуйста!
Если у кого-то появятся какие-то идеи, предложения, напишите
OnePunchMan, пожалуйста!
Если у кого-то появятся какие-то идеи, предложения, напишите
Цитата: dehote9223 от 12.08.2025, 19:12Внедрена новая политика безопасности, которая запрещает операционной системе (начиная с Windows 8) создавать дампы памяти процесса "Бастион".
Теперь, даже если программа аварийно завершится, извлечь из памяти остатки ключей шифрования или фрагменты вашего открытого текста становится практически невозможным.
Это важный шаг для защиты ваших данных от "холодного" анализа (cold boot attacks) и анализа дампов памяти.Ссылка та же
Внедрена новая политика безопасности, которая запрещает операционной системе (начиная с Windows 8) создавать дампы памяти процесса "Бастион".
Теперь, даже если программа аварийно завершится, извлечь из памяти остатки ключей шифрования или фрагменты вашего открытого текста становится практически невозможным.
Это важный шаг для защиты ваших данных от "холодного" анализа (cold boot attacks) и анализа дампов памяти.
Ссылка та же
Цитата: dehote9223 от 12.08.2025, 21:09Исправлена ошибка, появившаяся после перехода на компонент RichEdit, которая препятствовала сохранению настроек размера шрифта.
Теперь при изменении масштаба текста (Ctrl + Колесо мыши) его размер корректно записывается в файл настроек и восстанавливается при следующем запуске.Ссылка та же
Исправлена ошибка, появившаяся после перехода на компонент RichEdit, которая препятствовала сохранению настроек размера шрифта.
Теперь при изменении масштаба текста (Ctrl + Колесо мыши) его размер корректно записывается в файл настроек и восстанавливается при следующем запуске.
Ссылка та же
Цитата: Андрей от 12.08.2025, 21:51Привет. При масштабировании текста на тёмной теме, текст становится не читаемым.
https://www.upload.ee/files/18467221/Video_2025-08-12_214611.mp4.html
Привет. При масштабировании текста на тёмной теме, текст становится не читаемым.
https://www.upload.ee/files/18467221/Video_2025-08-12_214611.mp4.html
Цитата: dehote9223 от 13.08.2025, 08:43Комплексная, многоуровневая защита памяти
Программа "Бастион" спроектирована с учетом современных угроз и использует многоуровневую систему для защиты ваших данных непосредственно в оперативной памяти компьютера.
1. Шифрование пароля в памяти (ключевая защита)
Как только вы вводите пароль, он не хранится в памяти в открытом виде.
Вместо этого он немедленно зашифровывается с помощью одноразового, криптографически стойкого ключа, который генерируется для каждого сеанса.Когда пароль нужен для операции шифрования или расшифровки, он появляется в открытом виде лишь на микросекунды внутри одной изолированной функции.
Специальный механизм гарантирует, что его расшифрованная копия будет немедленно и безвозвратно уничтожена сразу после использования.
Этот подход делает извлечение вашего пароля из памяти практически невозможным, даже если злоумышленнику удастся проанализировать ее содержимое.2. Усиление безопасности процесса на уровне ОС
"Бастион" при запуске обращается напрямую к ядру Windows, чтобы активировать системные политики безопасности для своего процесса.
Эти политики значительно усложняют попытки сторонних программ анализировать "Бастион" и вмешиваться в его работу, в частности:Ограничивают доступ к памяти процесса со стороны стандартных системных утилит.
Запрещают генерацию нового исполняемого кода, защищая от многих видов атак с его внедрением.3. Противодействие отладке
Программа оснащена набором базовых проверок для противодействия анализу в реальном времени.
Она проверяет "отпечатки", которые оставляют стандартные отладчики, и при их обнаружении немедленно завершает работу.4. Безопасная обработка криптографических ключей
Криптографические ключи, сгенерированные из вашего пароля, блокируются в физической памяти.
Это значительно затрудняет их выгрузку на жесткий диск (в системный файл подкачки).Для очистки всех чувствительных данных (ключей, временных буферов) используется усиленный механизм.
Область памяти сначала перезаписывается случайными байтами, а затем обнуляется через системную функцию SecureZeroMemory.
Эта процедура применяется автоматически ко всем критическим данным, а также вручную при нажатии кнопки "Очистить".Важное замечание о пределах безопасности
Принятые меры — шифрование пароля в памяти, усиление безопасности процесса на уровне ОС, противодействие отладке и гарантированная очистка — создают мощную эшелонированную оборону.
Они делают извлечение данных из памяти крайне маловероятным и чрезвычайно сложным для реализации на практике.Тем не менее, важно понимать, что не существует абсолютной защиты.
Если ваш компьютер уже скомпрометирован вредоносным ПО, работающим на уровне администратора или ядра системы (например, кейлоггером или руткитом), то никакое приложение пользовательского режима не сможет гарантировать 100% безопасности.Возможности для самостоятельного улучшения
Проект "Бастион" публикуется с открытым исходным кодом.
Если для ваших задач требуется еще более высокий уровень, вы можете самостоятельно усилить его.
Например, можно добавить более продвинутые техники противодействия отладке, реализовать обфускацию кода или интегрировать любые другие механизмы защиты, которые считаете необходимыми.Ссылка та же
Комплексная, многоуровневая защита памяти
Программа "Бастион" спроектирована с учетом современных угроз и использует многоуровневую систему для защиты ваших данных непосредственно в оперативной памяти компьютера.
1. Шифрование пароля в памяти (ключевая защита)
Как только вы вводите пароль, он не хранится в памяти в открытом виде.
Вместо этого он немедленно зашифровывается с помощью одноразового, криптографически стойкого ключа, который генерируется для каждого сеанса.
Когда пароль нужен для операции шифрования или расшифровки, он появляется в открытом виде лишь на микросекунды внутри одной изолированной функции.
Специальный механизм гарантирует, что его расшифрованная копия будет немедленно и безвозвратно уничтожена сразу после использования.
Этот подход делает извлечение вашего пароля из памяти практически невозможным, даже если злоумышленнику удастся проанализировать ее содержимое.
2. Усиление безопасности процесса на уровне ОС
"Бастион" при запуске обращается напрямую к ядру Windows, чтобы активировать системные политики безопасности для своего процесса.
Эти политики значительно усложняют попытки сторонних программ анализировать "Бастион" и вмешиваться в его работу, в частности:
Ограничивают доступ к памяти процесса со стороны стандартных системных утилит.
Запрещают генерацию нового исполняемого кода, защищая от многих видов атак с его внедрением.
3. Противодействие отладке
Программа оснащена набором базовых проверок для противодействия анализу в реальном времени.
Она проверяет "отпечатки", которые оставляют стандартные отладчики, и при их обнаружении немедленно завершает работу.
4. Безопасная обработка криптографических ключей
Криптографические ключи, сгенерированные из вашего пароля, блокируются в физической памяти.
Это значительно затрудняет их выгрузку на жесткий диск (в системный файл подкачки).
Для очистки всех чувствительных данных (ключей, временных буферов) используется усиленный механизм.
Область памяти сначала перезаписывается случайными байтами, а затем обнуляется через системную функцию SecureZeroMemory.
Эта процедура применяется автоматически ко всем критическим данным, а также вручную при нажатии кнопки "Очистить".
Важное замечание о пределах безопасности
Принятые меры — шифрование пароля в памяти, усиление безопасности процесса на уровне ОС, противодействие отладке и гарантированная очистка — создают мощную эшелонированную оборону.
Они делают извлечение данных из памяти крайне маловероятным и чрезвычайно сложным для реализации на практике.
Тем не менее, важно понимать, что не существует абсолютной защиты.
Если ваш компьютер уже скомпрометирован вредоносным ПО, работающим на уровне администратора или ядра системы (например, кейлоггером или руткитом), то никакое приложение пользовательского режима не сможет гарантировать 100% безопасности.
Возможности для самостоятельного улучшения
Проект "Бастион" публикуется с открытым исходным кодом.
Если для ваших задач требуется еще более высокий уровень, вы можете самостоятельно усилить его.
Например, можно добавить более продвинутые техники противодействия отладке, реализовать обфускацию кода или интегрировать любые другие механизмы защиты, которые считаете необходимыми.
Ссылка та же
Цитата: dehote9223 от 13.08.2025, 09:11Уточнение
Ваш пароль не хранится в памяти в открытом виде постоянно.
Когда вы нажимаете "Шифровать" или "Расшифровать", происходит следующий процесс:
Программа считывает текст из поля ввода во временный буфер.
В этот же момент она немедленно шифрует содержимое этого буфера, используя одноразовый, криптографически стойкий ключ, который генерируется для текущего сеанса.Сразу после этого временный буфер, содержавший пароль в открытом виде, безвозвратно затирается.
Когда зашифрованный в памяти пароль нужен для основной криптографической операции, он появляется в открытом виде лишь на микросекунды внутри одной изолированной функции.
Специальный механизм гарантирует, что эта временная, расшифрованная копия будет немедленно и безвозвратно уничтожена сразу после использования.Этот двухэтапный подход гарантирует, что пароль существует в открытом виде только на стеке, на кратчайший возможный промежуток времени, а в "состоянии покоя" в памяти всегда находится только его зашифрованная версия.
Уточнение
Ваш пароль не хранится в памяти в открытом виде постоянно.
Когда вы нажимаете "Шифровать" или "Расшифровать", происходит следующий процесс:
Программа считывает текст из поля ввода во временный буфер.
В этот же момент она немедленно шифрует содержимое этого буфера, используя одноразовый, криптографически стойкий ключ, который генерируется для текущего сеанса.
Сразу после этого временный буфер, содержавший пароль в открытом виде, безвозвратно затирается.
Когда зашифрованный в памяти пароль нужен для основной криптографической операции, он появляется в открытом виде лишь на микросекунды внутри одной изолированной функции.
Специальный механизм гарантирует, что эта временная, расшифрованная копия будет немедленно и безвозвратно уничтожена сразу после использования.
Этот двухэтапный подход гарантирует, что пароль существует в открытом виде только на стеке, на кратчайший возможный промежуток времени, а в "состоянии покоя" в памяти всегда находится только его зашифрованная версия.
Цитата: dehote9223 от 13.08.2025, 20:51Механизм защиты от создания дампов памяти был заменен на штатную, документированную технологию Windows (WerSetFlags).
Теперь, в случае непредвиденного сбоя, операционная система не будет автоматически создавать копию (дамп) памяти процесса, что предотвращает утечку чувствительных данных.Внедрен механизм автоматической очистки (SecureClearGuard) для всех временных буферов, содержащих чувствительную информацию (вводимый текст, расшифрованные данные, промежуточные криптографические результаты).
Теперь, как только какая-либо часть ваших данных больше не нужна для операции, она немедленно и гарантированно стирается из оперативной памяти.
Это происходит автоматически, даже в случае непредвиденных ошибок, что сводит к минимуму время, в течение которого данные существуют в открытом виде, и делает их перехват практически невозможным.Ссылка та же
Механизм защиты от создания дампов памяти был заменен на штатную, документированную технологию Windows (WerSetFlags).
Теперь, в случае непредвиденного сбоя, операционная система не будет автоматически создавать копию (дамп) памяти процесса, что предотвращает утечку чувствительных данных.
Внедрен механизм автоматической очистки (SecureClearGuard) для всех временных буферов, содержащих чувствительную информацию (вводимый текст, расшифрованные данные, промежуточные криптографические результаты).
Теперь, как только какая-либо часть ваших данных больше не нужна для операции, она немедленно и гарантированно стирается из оперативной памяти.
Это происходит автоматически, даже в случае непредвиденных ошибок, что сводит к минимуму время, в течение которого данные существуют в открытом виде, и делает их перехват практически невозможным.
Ссылка та же
Цитата: dehote9223 от 14.08.2025, 10:14Принято решение выпустить версию программы без встроенных средств защиты от отладки и принудительной очистки оперативной памяти.
Основная причина этого изменения заключается в том, что данные механизмы имеют ограниченную эффективность в проекте с открытым исходным кодом.
Они могут быть легко выявлены и обойдены, что не создает реального препятствия для анализа приложения.Поскольку исходный код программы полностью доступен, разработчики и пользователи, которым требуются специфические функции защиты от отладки или анализа памяти, могут самостоятельно добавить или модифицировать код в соответствии со своими требованиями.
Ссылка та же
Принято решение выпустить версию программы без встроенных средств защиты от отладки и принудительной очистки оперативной памяти.
Основная причина этого изменения заключается в том, что данные механизмы имеют ограниченную эффективность в проекте с открытым исходным кодом.
Они могут быть легко выявлены и обойдены, что не создает реального препятствия для анализа приложения.
Поскольку исходный код программы полностью доступен, разработчики и пользователи, которым требуются специфические функции защиты от отладки или анализа памяти, могут самостоятельно добавить или модифицировать код в соответствии со своими требованиями.
Ссылка та же
Цитата: dehote9223 от 14.08.2025, 13:56Теперь вы можете не только искать текст (Ctrl + F), но и вносить изменения.
Функция "Заменить" позволяет постепенно заменять найденные символы.
"Заменить всё" заменяет все найденные символы одновременно.Ссылка та же
Теперь вы можете не только искать текст (Ctrl + F), но и вносить изменения.
Функция "Заменить" позволяет постепенно заменять найденные символы.
"Заменить всё" заменяет все найденные символы одновременно.
Ссылка та же
Цитата: dehote9223 от 14.08.2025, 20:29Генерация QR-кодов (Alt + Q)
Эта функция может быть полезна для быстрой и удобной передачи небольших зашифрованных сообщений или паролей на мобильные устройства.
Максимальный объем текста для кодирования в QR-код составляет 2331 байт
Важно понимать, что количество символов, которое можно закодировать, зависит от языка.
Например, латинские буквы и цифры занимают по 1 байту, в то время как кириллические символы в кодировке UTF-8 — по 2 байта.
Таким образом, в QR-код поместится примерно в два раза меньше кириллического текста, чем латинского.Следует учитывать, что процесс шифрования значительно увеличивает размер исходного текста из-за добавления служебных данных (соль, nonce, HMAC-тег) и кодирования в Base64.
Поэтому для успешной генерации QR-кода исходный открытый текст должен быть существенно меньше указанного лимита.В последующих версиях рассматривается возможность добавления сжатия (архивирования) данных перед шифрованием.
Это позволит помещать в QR-код больше информации и уменьшит итоговый размер зашифрованных сообщений.Вы можете сохранить сгенерированный QR-код как BMP-файл, сделав двойной щелчок левой кнопкой мыши по его изображению.
Ссылка та же, лежит в папке Bastion V16 + QR
Генерация QR-кодов (Alt + Q)
Эта функция может быть полезна для быстрой и удобной передачи небольших зашифрованных сообщений или паролей на мобильные устройства.
Максимальный объем текста для кодирования в QR-код составляет 2331 байт
Важно понимать, что количество символов, которое можно закодировать, зависит от языка.
Например, латинские буквы и цифры занимают по 1 байту, в то время как кириллические символы в кодировке UTF-8 — по 2 байта.
Таким образом, в QR-код поместится примерно в два раза меньше кириллического текста, чем латинского.
Следует учитывать, что процесс шифрования значительно увеличивает размер исходного текста из-за добавления служебных данных (соль, nonce, HMAC-тег) и кодирования в Base64.
Поэтому для успешной генерации QR-кода исходный открытый текст должен быть существенно меньше указанного лимита.
В последующих версиях рассматривается возможность добавления сжатия (архивирования) данных перед шифрованием.
Это позволит помещать в QR-код больше информации и уменьшит итоговый размер зашифрованных сообщений.
Вы можете сохранить сгенерированный QR-код как BMP-файл, сделав двойной щелчок левой кнопкой мыши по его изображению.
Ссылка та же, лежит в папке Bastion V16 + QR