|
4 / 4 / 1
Регистрация: 16.04.2013
Сообщений: 85
|
||||||
Не расшифровывается текстовый файл05.05.2014, 16:11. Показов 2248. Ответов 33
Метки нет (Все метки)
Всем привет!
Есть небольшая программа по шифрованию текстовых файлов методом гаммирования. Возникла проблема с дешифрацией. При выборе зашифрованного файла-нажимаю Дешифровать-в файле происходит повторное шифрование. Как исправить?
0
|
||||||
| 05.05.2014, 16:11 | |
|
Ответы с готовыми решениями:
33
Дан текстовый файл. Используя стек, сформировать новый текстовый файл, каждая строка которого содержит символы Вывод результата программы в текстовый файл и в двоичный файл с именем, задаваемым пользователем Дан текстовый файл f. Переписать компоненты файла f в файл g, заменив все пробелы символом '!' |
|
4 / 4 / 1
Регистрация: 16.04.2013
Сообщений: 85
|
|
| 06.05.2014, 10:24 [ТС] | |
|
northener, да. либо перезапустил прогу. выбрал файл для расшифровки-выбрал путь для сохранения-нажал дешифровать
0
|
|
|
Заблокирован
|
|
| 06.05.2014, 13:50 | |
|
Да вообще-то при гаммировании ничего выбирать не надо. Текст шифруется и расшифровывается одной и той же функцией. Пропустил раз - зашифровано. Пропустил второй раз - расшифровано.
Добавлено через 1 минуту А это что за хрень AnsiChar(Byte(Result[I])? Добавлено через 2 минуты Вообще подход неверный. Гаммированию фиолетово, юникод и анси. Он работает с бинарником. И вам тоже нужно бинарником это делать. То есть работать на уровне байтов а не символов. Мой вам совет, осваивайте потоки (TStream).
0
|
|
|
4 / 4 / 1
Регистрация: 16.04.2013
Сообщений: 85
|
|
| 06.05.2014, 17:49 [ТС] | |
|
Leoparrd, ну и как тогда будет?я не могу придумать
0
|
|
|
Заблокирован
|
|
| 06.05.2014, 19:15 | |
|
var
STRM:TMemoryStream;//Объявляем поток памяти. ........................ В процедуре создаём его. STRM:=TMemoryStream.Create;// STRM.LoadFromFile('Text.txt'); Файл загружается как бинарник. На далее просто. Узнаём размер потока. Объявляем переменную (байт) для считывания - записи. Объявляем переменную позиции. Ну и в цикле читаем каждый байт, проводим над ним гаммирование и возвращаем на место. Когда дошли до конца, сохраняем поток в файл. Вот собственно и всё.
0
|
|
|
Заблокирован
|
|
| 06.05.2014, 20:07 | |
Сообщение было отмечено Elizium33 как решение
Решение
Вот тебе исходник и не мучайся.
Обрати внимание, в случаях шифрования и дешифрирования работает одна функция. Просто для удобства я сделал 2 кнопки. Текстовый файл имеется. Попросту нажимаешь одну кнопку. потом вторую и смотришь в папку. там появится файл зашифрованного текста и расшифрованного. Сравни расшифрованный с исходником. Ну а диалоги записи-загрузки добавляй сам.
1
|
|
|
4 / 4 / 1
Регистрация: 16.04.2013
Сообщений: 85
|
|
| 06.05.2014, 20:27 [ТС] | |
|
Leoparrd, спасибо. а там комментарии есть в коде? хочется всё ж разобрать что к чему
0
|
|
|
Заблокирован
|
|
| 06.05.2014, 20:40 | |
|
есть
0
|
|
|
4 / 4 / 1
Регистрация: 16.04.2013
Сообщений: 85
|
||||||
| 06.05.2014, 21:58 [ТС] | ||||||
|
Leoparrd,
не понимаю как сюда прописать что бы на шифровку/расшифровку брался файл который нужен. (путь которого в edit)
и при таком шифровании разве не должен открыться файл(текстовый) в котором просто кракозябры? или это все сохраняется в .btt-файл?
0
|
||||||
|
Заблокирован
|
|
| 06.05.2014, 22:09 | |
|
Elizium33,
В 1.btt и есть кракозябы. Процедура Work 1 параметр входной файл 2 параметр - выходной Так и пишем. Work(Edit1.text, (Здесь имя файла результа) ); Вам нужен второй эдит, в который прописыватся файл результата. Добавлено через 2 минуты Если написать так Work(Edit1.text, Edit1.text); И оставить одну кнопку, то нажав первый раз файл зашифруете. Втрой раз файл расшифруете. Но имя у него будет одно и тоже Добавлено через 1 минуту Кстати, можно в процедуру ввести третий параметр - строку пароля чтоб пароль можно было через строку вводить.
0
|
|
|
4 / 4 / 1
Регистрация: 16.04.2013
Сообщений: 85
|
||||||
| 06.05.2014, 22:14 [ТС] | ||||||
|
Leoparrd, в самом первом сообщении есть картинка с формой.
Там 2 эдита. в первом отображается путь к исходному файлу(тексту) во втором отображается путь куда сохраняем. Значит будет так: для кнопки шифровать: Work(Edit1.Text, Edit2.Text); для кнопки расшифровать получается тоже самое? ведь я могу выбрать файл для расшифровки Добавлено через 4 минуты Leoparrd, да ,ввод ключа было бы идеально. но как его присвоить?
0
|
||||||
|
Заблокирован
|
|
| 06.05.2014, 22:18 | |
|
Да. тоже самое. Программа не видит разницы. То что дали то и съест.
Поэтому хватит одной кнопки и написать на ней Пуск Добавлено через 1 минуту Там локальные перменные. Щас напишу
0
|
|
|
4 / 4 / 1
Регистрация: 16.04.2013
Сообщений: 85
|
|
| 06.05.2014, 22:18 [ТС] | |
|
Leoparrd, Данный метод позволяет шифровать только текстовые файлы или любые?
0
|
|
|
Заблокирован
|
|||||||||||
| 06.05.2014, 22:31 | |||||||||||
Сообщение было отмечено Elizium33 как решение
Решение
Тогда сделайте третий этит, будете в него пароль набирать Добавлено через 1 минуту Например так Work(Edit1.Text, Edit2.Text,Edit3.Text); Добавлено через 36 секунд Edit1.Text Входной файл Edit2.Text Выходной файл Edit3.Text Пароль Добавлено через 2 минуты Или непосредсвенно задавать
А можно просто в строку вогнать любой другой файл. Добавлено через 34 секунды То есть паролем может быть, например, картинка Добавлено через 16 секунд Или звук Добавлено через 1 минуту Абсолютнго любые Добавлено через 14 секунд Что воткнёшь то и зашифрует
1
|
|||||||||||
|
4 / 4 / 1
Регистрация: 16.04.2013
Сообщений: 85
|
|
| 06.05.2014, 22:32 [ТС] | |
|
Leoparrd, огромнейшее спасибо)
0
|
|
| 06.05.2014, 22:32 | |
|
Даны текстовый файл f. Записать в файл g элементы файла f Как расшифровывается RAD Studio Файл: Записать в другой текстовый файл все ненулевые числа и номера строк, в которых они встретились. Дан текстовый файл. Записать в отдельный файл все симметричные строки исходного файла, являющиеся отдельными предложения
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства.
Родственных связей существует 8 ступеней, такие как:
p - отец
P - мать
q - муж
Q - жена
b - брат
B - сестра
s - сын
S - дочь
|
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире.
Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
|
|
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
|
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701
Купил два термопринтера QR701.
На сэлф-тесте написано:
Language: PC936 (GB18030).
Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
|
Создание формы заимствованного документа
Maks 03.08.2026
Задача:
Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также
табличная часть со следующими реквизитами:
- Расчетный счет покупателя. . .
|
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача:
В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
|