Легкий шифр текста в *.txt

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
kif
Постоялец
Постоялец
 
Сообщения: 736
Зарегистрирован: 10.12.2001 (Пн) 18:06
Откуда: Украина, Одесса

Сообщение kif » 14.01.2005 (Пт) 12:14

1. Почему бы не использовать стандартный алгоритм шифрования, например RC4.

2. Если писать последовательно в файл, т.е.
print #f, string
то в конце кадой строки ставиться 10,13.

если писать бинарно - этого не будет.
Братья и сестры, что вы делаете???
Ведь вы же братья и сестры.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 14.01.2005 (Пт) 12:19

Вообще-то <13><10>.
И если писать Print #F, String;, то ничего этого не будет.
Lasciate ogni speranza, voi ch'entrate.

kif
Постоялец
Постоялец
 
Сообщения: 736
Зарегистрирован: 10.12.2001 (Пн) 18:06
Откуда: Украина, Одесса

Сообщение kif » 14.01.2005 (Пт) 12:21

Значит проблема в алгоритме шифрования.
Братья и сестры, что вы делаете???
Ведь вы же братья и сестры.

cashman
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 152
Зарегистрирован: 03.06.2004 (Чт) 0:57
Откуда: Россия, г.Екатеринбург

Сообщение cashman » 15.01.2005 (Сб) 0:08

2alibek помедленней, Энштейн...
Выложи лучше пример ПРАВИЛЬНОГО кода шифрования и дешифрования

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 15.01.2005 (Сб) 4:00

А попробуй так:
Код: Выделить всё
Dim b As Byte
Open "file.txt" For Binary As 1
Do
    Get 1, , b
    If EOF(1) Then Exit Do
    Put 1, Loc(1), Not b
Loop
Close 1
Изображение

cashman
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 152
Зарегистрирован: 03.06.2004 (Чт) 0:57
Откуда: Россия, г.Екатеринбург

Сообщение cashman » 18.01.2005 (Вт) 0:21

2tyomitch
спасибо, твой код работает. И ни каких левых знаков.

Насколько это будет тормозить систему если я ищу ~ в 1мб текста, нужные слова, если:
насколько я понял алгоритм.
1)дешифруем файл
2)открываем его
3)по строке проверяем на искомый текст
4)закрываем файл
5)шифруем снова
и так 12 файлов *.txt (~ 1мб общий вес)
Насколько это шифрование/дешифрование затормозит мою систему, т.к. она и так вешается при очень широком поиске (например 2 знака)?

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 18.01.2005 (Вт) 5:41

А ты не так делай... Шифруй искомый текст, и ищи его в зашифрованном файле.
Тогда не придётся дешифровать/шифровать обратно весь мегабайт.
Изображение

cashman
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 152
Зарегистрирован: 03.06.2004 (Чт) 0:57
Откуда: Россия, г.Екатеринбург

Сообщение cashman » 19.01.2005 (Ср) 3:33

поясни в виде кода...
1)как шифровать текст в textboxe?
2)вставлять по строке? но кодированных строк больше!..
3)как это потом разкодировать в textboxe?

и быстрее ли это предложенного мной метода?

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 19.01.2005 (Ср) 7:57

1)
Код: Выделить всё
Dim i As Long, t As String: t = Text1
For i = 1 To Len(t)
    Mid(t, i, 1) = Chr(256 + Not Asc(Mid(t, i, 1)))
Next
Text1 = t

3) точно так же

куда что тебе надо вставлять - я не понял :-(
Изображение

cashman
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 152
Зарегистрирован: 03.06.2004 (Чт) 0:57
Откуда: Россия, г.Екатеринбург

Сообщение cashman » 20.01.2005 (Чт) 0:08

2tyomitch
ты не сказал насколько это тормознет систему...
а вставлять по строке?
если я раньше вставлял строку при удачном поиске так:
Код: Выделить всё
Open "***.txt" For Input As #1
Do Until EOF(1)
    Line Input #1, txt
        If InStr(p, txt, Iskomoe1, vbTextCompare) <> 0 Then
        alltxt = alltxt + txt + vbCrLf
        end if
    Loop
Close #1

то теперь меня смущает, что кодированных строк БОЛЬШЕ, чем было изначально. Отсюда вопрос - используется тот же метод вставки текста из файла (по строчкам) или нечто другое?..

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 20.01.2005 (Чт) 2:44

Я не понимаю, что тебе нужно :oops:
Опиши задачу целиком. Что куда вставляется, и при чём здесь шифр?
Изображение

cashman
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 152
Зарегистрирован: 03.06.2004 (Чт) 0:57
Откуда: Россия, г.Екатеринбург

Сообщение cashman » 20.01.2005 (Чт) 3:01

1)изначаль я хочу кодировать файл, чтобы просто визуально нельзя было его прочитать
(Файл представляет из себя скажем 100 строк длиной 30 символов)
2)мне необходимо в КОДИРОВАННОМ файле искать "мир" (например) и в случае если в строчке встречается слово "мир", то необходимо вставить строку (старый код указал в предыдущем сообщении).

1вопрос: НО теперь меня смущает, что кодированных строк БОЛЬШЕ, чем было изначально. Отсюда вопрос - как вставлять инфу??? ведь строк больше!!!
2вопрос: Ну и как?, точнее что? искать по твоей схеме в файле (вставляемой строке), ведь для совпадения слово "мир" нужно также зашифровать.
Т.Е. как правильно кодировать слово?..
3вопрос: И насколько это будет тормозить систему в сравнении с Безкодированным поиском/вставкой?.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 20.01.2005 (Чт) 4:24

cashman писал(а):1)изначаль я хочу кодировать файл, чтобы просто визуально нельзя было его прочитать
(Файл представляет из себя скажем 100 строк длиной 30 символов)
2)мне необходимо в КОДИРОВАННОМ файле искать "мир" (например) и в случае если в строчке встречается слово "мир", то необходимо вставить строку (старый код указал в предыдущем сообщении).

Куда вставляется строка?
Изображение

cashman
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 152
Зарегистрирован: 03.06.2004 (Чт) 0:57
Откуда: Россия, г.Екатеринбург

Сообщение cashman » 20.01.2005 (Чт) 14:51

строка (txt) вставляется в alltxt,
alltxt = alltxt + txt + vbCrLf
а затем все это в Text1.text
вот и все...

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 20.01.2005 (Чт) 19:20

Насколько всё это будет тормозить - не знаю, надо проверить.

Ограничителем строк в зашифрованном файле будет не Chr(13) & Chr(10), а Chr(242) & Chr(245) - русские буквы тх.

Соответственно, схема твоих действий такая:
1) читаешь весь файл в одну переменную;
2) разбиваешь его на строки по символам тх, легче всего это сделать функцией Split;
3) шифруешь искомое слово так, как я показал в предыдущем посте;
4) если слово найдено в строке - расшифровываешь строку и добавляешь её в alltxt.
Изображение

cashman
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 152
Зарегистрирован: 03.06.2004 (Чт) 0:57
Откуда: Россия, г.Екатеринбург

Сообщение cashman » 20.01.2005 (Чт) 22:16

1) работаешь внутри переменной?, а выводить в какой-нибудь Textbox не надо для работы с ним?..
2) выложи код для пункта 2-й...
P.S. у тебя встречается некое "Mid" с тремя переменными. Что за Mid и за что отвечает каждая из 3-х?

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 21.01.2005 (Пт) 7:54

1) не надо, вывод - самое последнее действие
2)
Код: Выделить всё
Dim v As Variant
For Each v In Split(куда_считал_весь_файл, "тх")
'обработка
Next

3) возвращает кусок переданной первым параметром строки, начиная с позиции, заданной вторым параметром; длина куска задаётся третьим.
Изображение

cashman
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 152
Зарегистрирован: 03.06.2004 (Чт) 0:57
Откуда: Россия, г.Екатеринбург

Сообщение cashman » 21.01.2005 (Пт) 12:01

что значит Возвращает? откуда? куда?
теперь я тебя не понимаю...

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 21.01.2005 (Пт) 12:37

cashman писал(а):что значит Возвращает? откуда? куда?
теперь я тебя не понимаю...
Туда, откуда её вызвали: http://bbs.vbstreets.ru/viewtopic.php?p=86829#86829
Изображение

cashman
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 152
Зарегистрирован: 03.06.2004 (Чт) 0:57
Откуда: Россия, г.Екатеринбург

Сообщение cashman » 22.01.2005 (Сб) 0:08

Все в выходные сижу и все это пробую...
Спасибо

Пред.

Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 6

    TopList  
cron