Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2009.08.09;
Скачать: [xml.tar.bz2];

Вниз

помогите найти ошибку   Найти похожие ветки 

 
9899100   (2008-05-26 17:07) [0]

люди помогите найти ошибку, плииз, целый день бьюсь и бестолку
вот скачал со страницы
http://www.delphisources.ru/pages/faq/base/idea_encryption.html
модуль для шифрования IDEA
пример указанный на странице шифрует файлы, все с ними ок!
но как только я начинаю шифровать строки..... все ничего не работает, причем не аботает если длина строки больше 8, но это понятно т.к. алгоритм шифрует токма по 8 байт

вот код
procedure TForm1.Button1Click(Sender: TObject);
Var s1:TMemoryStream;
   buf:PChar;
   s:String;
   l:Integer;
begin
 s1:=TMemoryStream.Create;
 s:=Edit1.Text;
 buf:=StrAlloc(Length(s)+1);
 buf:=StrPCopy(buf,s);
 s1.Write(buf[0],Length(buf));
 s1.position:=0;
 EncryptStream(s1,s1.Size,"privet");
 s1.Position:=0;
 StrDispose(buf);
 Buf:=strAlloc(s1.Size+1);
 s1.Read(buf[0],s1.size);
 buf[s1.Size]:=Char(0);

 Label1.Caption:=buf;
 //
 l:=s1.Size;
 s1.Size:=0;
 s1.Position:=0;
 s1.Write(buf[0],l);
 //

 DecryptStream(s1,s1.Size,"privet");
 strDispose(buf);
 Buf:=StrAlloc(s1.Size+1);
 s1.Read(buf[0],s1.size);
 buf[s1.Size]:=chr(0);
 Label2.Caption:=StrPas(buf);
 StrDispose(buf);
end;


 
Palladin ©   (2008-05-26 17:14) [1]

объявление EncryptStream и DecryptStream приведи


 
9899100   (2008-05-26 17:22) [2]


> Palladin

я в посте сверху пложил ссылку на текст модуля
он в принципе не большой если нада могу кинуть


 
Palladin ©   (2008-05-26 17:23) [3]

мог посмотреть, не просил бы, не нужен весь модуль, просто объявления


 
9899100   (2008-05-26 17:27) [4]

function EncryptStream(DataStream: TStream; Count: Int64; Key: string): Boolean;
function DecryptStream(DataStream: TStream; Count: Int64; Key: string): Boolean;

там есть пример
работает как часы
а вот почему не работает моя процедура :((
уже весь лоб об стену разбил :)

procedure TForm1.Button1Click(Sender: TObject);
var
 SourseStream : TFileStream;
begin
SourseStream := TFileStream.Create(Edit1.Text, fmOpenReadWrite );
EncryptStream(SourseStream, SourseStream.Size, Edit2.Text);
SourseStream.Free;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
 SourseStream : TFileStream;
begin
SourseStream := TFileStream.Create(Edit1.Text, fmOpenReadWrite );
DecryptStream(SourseStream, SourseStream.Size, Edit2.Text);
SourseStream.Free;
end;


 
Palladin ©   (2008-05-26 17:33) [5]

Function EncryptString(Const s,p_strKey:String):String;
Var
 m:TMemoryStream;
Begin
 m:=TMemoryStream.Create;
 Try
  m.Write(s[1],Length(s));
  m.Seek(0,soFromBeginning);
  EncryptStream(m,Length(s),p_strKey);
  m.Seek(0,soFromBeginning);
  SetLength(Result,m.Size);
  m.Read(Result[1],m.Size);
 Finally
  m.Free;
 End;
End;

Function DecryptString(Const s,p_strKey:String):String;
Var
 m:TMemoryStream;
Begin
 m:=TMemoryStream.Create;
 Try
  m.Write(s[1],Length(s));
  m.Seek(0,soFromBeginning);
  DecryptStream(m,Length(s),p_strKey);
  m.Seek(0,soFromBeginning);
  SetLength(Result,m.Size);
  m.Read(Result[1],m.Size);
 Finally
  m.Free;
 End;
End;


пробуй


 
9899100   (2008-05-26 17:37) [6]

твои работают
так в чем моя ошибка то???


 
Palladin ©   (2008-05-26 17:40) [7]

в том, что ты пытаешься пятнадцать раз перелить из пустого в порожнее и скорее всего где то на девятом спотыкаешься. вникать в твой код - у меня нет никакого желания, я привел так как должно быть, твоя задача, если интересно, проанализировать свой на предмет тараканов, в любом случае плюнуть и сказать мене пасиба :)


 
brrr   (2008-05-26 17:41) [8]

SourseStream := TFileStream.Create(Edit1.Text, fmOpenReadWrite );
тут копай


 
9899100   (2008-05-26 17:45) [9]


> Palladin

тебе то спасиба  я не спорю
но вопрос то был гиде моя ошибка
:)
но я её всетаки нашел !!!!
от тута
s1.Write(buf[0],l);
.... от тут надо перемещать на 0
DecryptStream(s1,s1.Size,"privet");
.... и тут тоже :)



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2009.08.09;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.005 c
2-1244966873
Guriev
2009-06-14 12:07
2009.08.09
Возможно ли такое!!!??? ))) Поле MEMO с гиперссылками?


15-1243715424
Юрий
2009-05-31 00:30
2009.08.09
С днем рождения ! 31 мая 2009 воскресенье


4-1213787176
Layner
2008-06-18 15:06
2009.08.09
Узнать Uptime свыше 49 дней...


15-1244613139
Василий Иванов_22
2009-06-10 09:52
2009.08.09
уравнение


15-1244493792
Медвежонок Пятачок
2009-06-09 00:43
2009.08.09
новая мулька





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский