![]() |
|
Модераторы: Poseidon |
![]()
|
|
| Arhangel_76 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 20.9.2006 Репутация: нет Всего: нет |
Люди, спасайте!!!! Горю!!!! Второй день пытаюсь зашифровать текс но ничего не выходит. Облазил все. И то что вы тут пишите тоже не помогает.
Дело в том что есть на диске файл текстовый, и моя программа в него поле каждой сесссии ДОПИСЫВАЕТ текст. Шифрую непосредственно в проге, и дописываю уже шифрованный текст. Все бы хорошо, но когда пытаешься расшифровать, происходит что то странное. Либо только начальный кусок расшифровывается, а остальное - бяка кулибяка, либо при шифровании шифрует не всю строку, а тока чать. В общем ничего не могу сообразить, как надо. Сейчас вам код напишу как сохраняю в файл: procedure SaveToLog (Str:String); var f:TextFile; Filedir:String; windir: array[0..255] of char; begin GetWindowsDirectory(windir,255); Filedir:=windir+'\text.log'; assignFile(f, filedir); if not FileExists(Filedir) then begin Rewrite(f); CloseFile(f); end; Append(f); Write(f, str); //Writeln(f, str); //пробовал и так, результат тот же Flush(f); CloseFile(f); end; а вот и ваша функция, только она не расшифровывает потом все, а тока начало небольшое (может быть length() выдает неправильную длинну строки, а? ) function Crypt(CryptStr: string): string; var e : string; i : Integer; begin for i := 1 to length(CryptStr) do begin e[i] := chr(ord(CryptStr[i])+12); //тут можешь поставить любое число end; Result:=(e); end; НАПИШИТЕ НОРМАЛЬНЫЙ ПРИМЕР ПЛИЗЗ!!!!!!!!!!!! |
|||
|
||||
| Limpopo |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 20.9.2006 Репутация: 0 Всего: 1 |
я бы помог если б смог
|
|||
|
||||
| vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 1 Всего: 56 |
я могу на с++ выложить пойдет?? |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 4 Всего: 484 |
Юзай этот код: http://forum.vingrad.ru/index.php?showtopi...st&p=680266
Пропадут все проблемы. ЗЫ. А почему тема в центре помощи, а не в дельфи? |
|||
|
||||
| Sartorius |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1568 Регистрация: 18.7.2006 Где: Ivory tower Репутация: 8 Всего: 37 |
Мдя... когда - то писал на паскале....помниться там в нулевом элементе строки - длина, а ты ее не выставляешь.
|
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 4 Всего: 484 |
В дельфи запрещено обращение к нулевому элементу.
Да и длина уже давно не там - в паскале длина строки укладывалась в 255 байт - один байт описывал длину. В дельфи строки до 2-х гигов. Длину одним байтом уже не пропишешь. Да и не так теперь всё просто - строки требуют динамическое выделение памяти. Выделять действительно нужно - через SetLength. Но шифрование сдвигом - не просто ненадёжное, но и чревато ошибками. |
|||
|
||||
| Sartorius |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1568 Регистрация: 18.7.2006 Где: Ivory tower Репутация: 8 Всего: 37 |
Да я думаю Arhangel_76 под TP 5.0 - 7.0 пишет.
Если ты имеешь ввиду переполнение - то ИМХО оно тут не помешает, при вычитании к исходному символу вернемся, или еще какие-нить подводные камни есть? |
||||
|
|||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 4 Всего: 484 |
TP7 не может работать с WinAPI.
А переполнение более, чем реально, т.к. русская таблица в вин кодировке как раз в конце живёт. |
|||
|
||||
| Arhangel_76 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 20.9.2006 Репутация: нет Всего: нет |
Конечно смотрел!!!!!!!!! Я и пример взял оттуда. НЕПОЛУЧАЕТСЯ!!!! Если шифровать только 1 текстовый файл (строку) то все нормально. Но если каждый раз к шифрованной строке дописывать еще (тоже предварительно зашифровав) то уже не поддается расшифровке, тока 1 часть расшифровывается. Вообще все как то странно. Если надо могу исходники выложить, чтоб было понятней
Добавлено @ 12:03 Кто нибудь нормально код написать может? пишу я на Delphi7. От шифрования единственное что я хочу, это то чтобы открыв блокнотом файл мой с текстом, прочесть нельзя было его. И было бы непонятно что это вообще такое за абра кодабра. Понятно что если возьмут расшифровывать расшифруют еще и не такое. Я тут подумал, ведь Writeln(f, str); дописывает символ окончания строки а когда расшифровываем то length() как отпределяет конец строки? может до этого символа? оттого и все траблы? я вообще в инете нашел уже кода 3 или 4 шифрования. И все почемуто примерно одинаково ошибки дают в том как я их использую. При расшифровке. Может вообще нельзя к зашифрованному тексту дописывать, а?????? но я пробовал и по другому: перед тем как дописать, извлекал зашифрованный приедыдущий текст, расшифровывал, к нему прибавлял новый, зашифровывал все, и сохранял. Но всеравно ничего не помогало Скажите в чем дело?????????? |
|||
|
||||
| Arhangel_76 |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 20.9.2006 Репутация: нет Всего: нет |
Выкладывай на С++ Я найду тех кто переведет на паскаль, есть знакомые у меня. Но хоть что то дайте!!!! Горю, весь проект встал |
||||
|
|||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 4 Всего: 484 |
Выкинь свою кривую функцию!
Она не работает!!! Неужели так трудно вместо неё использовать то, что я дал? |
|||
|
||||
| vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 1 Всего: 56 |
|
|||
|
||||
| Arhangel_76 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 20.9.2006 Репутация: нет Всего: нет |
Snowy,
то что ты дал, помоему вообще некомпилируемо на дельфи. Покрайне мере не для моего ума. Я все скопировал, функции их обявления. Там вообще Дельфи орет что все не так. Какието ошибки вылетают что "ожидалось an indetifer а найдено =" и ожидалось : а найдено = Конечно я сомневаюсь что кто то из модераторов может так коряво писать, но темнееменее я перенести это к себе в прогу немогу В отличии от "кривой" функции, которая хоть как то работает P.S. что же будет тогда дальше? когда мне понадобится зашифрованный файл упаковать еще и в Zip |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 4 Всего: 484 |
Arhangel_76, ты вынуждаешь меня делать за себя свою работу
Уже ведь всё разжевал и в рот положил. Это элементарно, Ватсон! Держи. Присоединённый файл ( Кол-во скачиваний: 27 )
CryptTest.zip 10,79 Kb |
|||
|
||||
![]()
|
| Правила форума "Центр помощи" | |
|
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Центр помощи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |