|
|
|||||||||||||||||||||
Шифровщик/дешифровщик текстовых файлов на Batch06.08.2013, 22:56. Показов 21322. Ответов 6
Метки нет (Все метки)
Хочу сделать шифровщик текстовых файлов на Batch. Основы знаю. Кстати огромное спасибо Dragokas за многочисленные объяснения про Batch файлы и FraidZZ за подсказку!
![]() Почему именно Batch? Ну нравится мне этот язык И знаю я его лучше всего остального.Так вот. Предполагаю создание шифровщика таким способом: 1. Генерируется случайная буква/набор букв (если кто подскажет как сделать переменную цифрой - буду счастлив) Например abc. 2. Все буквенные символы заключаются в проценты и меняются на сгенерированные случайные обозначения для каждой буквы и запишем в файл.
set abc=a 4. Дешифруем
Прогрессбар
Не судите строго, я еще новичек...
0
|
|||||||||||||||||||||
| 06.08.2013, 22:56 | |
|
Ответы с готовыми решениями:
6
Зависание программы (простой шифровщик/дешифровщик) Требуется создать шифровщик\дешифровщик строки в двоичный код и наооборот Пустой архив, подозрение на шифровщик файлов |
|
|
|||||||||||||||||
| 07.08.2013, 01:36 | |||||||||||||||||
|
И еще один повод обратиться сюда: мы не любим готовые решения на блюдечке
![]() Знаю, что уже есть шифровальщики на батниках, но раз сами захотели. Изобретем свой. ![]() А за "голосовой" прогрессбар отдельное спасибо ![]()
¶ Добавлено через 21 минуту Теперь по поводу алгоритма шифрования. Т.е. Вы предлагаете использовать шифровочную таблицу, где для каждого символа будет случайным образом сгенерирована замена в виде нескольких псевдослучайных символов. Отсюда вытекают такие проблемы: 1) для каждого символа случайная последовательность должна быть уникальна. Есть 0,01 % какая-то вероятность, что сгенерируются одинаковые (решается 1-2 строками кода.):
Этап 1) Текст bank а -> abc Этап 2) Текст babcnk b -> qwerty ... Здесь проблемка - заменится не только 1-ый символ, но и 3-й. Я так понял - Ваше предложение предварительно обернуть каждый символ в проценты. % - процентами обычно раскрывается значение переменной. Поэтому идея хорошая, но не процентами, а к примеру возьмем какой-то неиспольуемый символ. Мне понравился этот - ¶. Для сведения: ASC код = 182 (Hex = B6). Итого получим текст: ¶b¶¶a¶¶n¶¶k¶ Теперь можно начинать замены: ¶a¶ -> abc ¶b¶ -> qwerty и т.д.... Примерный код команды шифровальщика одной строки:
Теперь код оборачивания каждого символа в знаки ¶ (т.е. из bank -> в ¶b¶¶a¶¶n¶¶k¶ ) Здесь 2 варианта видится: Способ 1) Читать каждый символ и последовательно формировать новую строку с добавлением в начало и в конец символа ¶ (слишком банально - и мне кажется медленнее способа № 2 на длинных строках) Способ 2) Выделить из строки всех уникальных букв. Сделать замены уникальных букв на ¶буква¶. Способ 3) = способу 2, но уникальные не выделять, а тупо сразу делаем замены каждой из букв алфавита. Добавлено через 15 минут Генератор кодировочной таблицы: Вперед в зубы код от sov44 Генератор пароля и можно ее легко создать обернув в цикл с алфавитом. Пример строки кода такого цикла: Перекодировщик Reversed Hex в символьную строку Вывод в файл с дозаписью: Bash echo текст>>"файл"
3
|
|||||||||||||||||
|
Модератор
5241 / 2115 / 416
Регистрация: 06.01.2013
Сообщений: 4,846
|
||
| 07.08.2013, 11:56 | ||
|
По теме: Полезные VBS скрипты и программы по работе с ними
1
|
||
|
|
|||||||||||
| 07.08.2013, 12:59 [ТС] | |||||||||||
|
Спасибо большое за подсказки!
Вопрос кодировочной таблицы я планирую решить так: -случайная комбинация букв - abc -текстовый файл (его содержание) - a
Проблема в том что я не умею оборачивать буквы в проценты ![]() Да, шифроваться будут только буквы, но мне этого в принципе достаточно. Зато потом, если шифровался батник можно сразу запускать зашифрованный файл. FraidZZ, я хочу написать его только на BAT. Потом примусь за изучение VBScript.
0
|
|||||||||||
|
Модератор
5241 / 2115 / 416
Регистрация: 06.01.2013
Сообщений: 4,846
|
|
| 07.08.2013, 13:36 | |
|
Можно и не в проценты - будут проблемы с передачей парамеиров и т.д. Оберни, например, в квадратные скобки. Буду за компом - скину наброски.
Но скажу сразу - наложение текста на ключ - без разницы, каким способом, хоть сложением ASCII-кодов символов, хоть побитовым XOR гораздо надежнее.
0
|
|
|
|
||||||
| 07.08.2013, 21:34 [ТС] | ||||||
|
Пока только шифровщик без дешифровки...
Количество переменных увеличил дабы меньше вероятности того, что попадутся одинаковые. Заключил в *а* звездочки, зашифрованные буквы, чтобы потом расшифровать. ---- Буду совершенствовать!
0
|
||||||
|
|
|||||||||||||||||||||||||||||||||||||||||
| 08.08.2013, 03:44 | |||||||||||||||||||||||||||||||||||||||||
|
Ох. Т.е. у Вас эдакой обфускатор имен файлов получился. =)
В целом очень неплохо. (*) - хороший выбор. Еще бы добавить if /i - это игнорирование регистра букв (в 50-ю строку). И "закавычить" присвоения, тогда строка 46 будет не нужна. Примерно так: Set "Char=%Data:~,1%" ... If /i "%Char%"=="%%A" ... Set "Result=%Result%%Char%" Set "Data=%Data:~1%" Советы по оптимизации скорости
Для коротких имен, которыми есть файлы Ваш алгоритм будет наиболее быстрым. Для более длинного текста, вероятно будет лучше один из вариантов ниже: 1) вместо перебора всего алфавита для каждого символа использовать if defined (вместо строки 50)
Предупреждение: скрипт может "вылететь", если Char = пустой символ. 2) прямая замена всех букв из алфавита целиком во всей строке:
3) Более быстрый вариант (весь алфавит развернуть):
Аж стало интересно. На счет EnableDelayedExpansion: Он глотает (!) воскл. знаки, так что они потеряются навсегда. Раз уж у Вас код работает через Goto, что есть верно, можно отказаться вообще от этого режима, переписав строку 39 так:
На счет шифрования цифр. %1% - имеет другое значение в BAT. Вы можете сделать их таблицу отдельным списком вида:
Для дешифровщика Вам пару подсказок: Дешифровочную таблицу Вы делаете в виде отдельного файла-подпрограммы, как я понял, вида set *%random%*=a. Вызвать будет просто:
Теперь парсинг шифрованого текста на составляющие по разделителю (*): 1) Заменяем весь текст из вида *aaa**bbb**ccc* -> в "aaa" "bbb" "ccc" А задачка-то нетривиальная. ни так: set data=%data:*=" "% ни так: set data=%data:^*=" "% не получается. Тогда по методу смещения токенов от FraidZZ-а:
Bash for %%? in (%data%) do echo %%~? Все включено в 1)
1
|
|||||||||||||||||||||||||||||||||||||||||
| 08.08.2013, 03:44 | |
|
Помогаю со студенческими работами здесь
7
Создание программы с использованием текстовых файлов и файлов записи Отправка файлов средствами Batch Сохранение текстовых файлов С использованием текстовых файлов
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица.
Задача: зафиксировать три левых колонки в отчете.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
/ / . . .
|
Настройки VS Code
Loafer 13.04.2026
{
"cmake. configureOnOpen": false,
"diffEditor. ignoreTrimWhitespace": true,
"editor. guides. bracketPairs": "active",
"extensions. ignoreRecommendations": true,
. . .
|
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2.
Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива.
Было так:. . .
|
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html
Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|