Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.08.09;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.013 c
15-1243134920
ggg
2009-05-24 07:15
2009.08.09
Парсер XML


15-1244565458
Rimdus
2009-06-09 20:37
2009.08.09
Перекрыть приватный метод


11-1204664342
=BuckLr=
2008-03-04 23:59
2009.08.09
Вопрос по KOLMediaPlayer


15-1244202663
KSergey
2009-06-05 15:51
2009.08.09
Параметры (прокси) для аккаутна system


15-1244387849
cyber-pilot
2009-06-07 19:17
2009.08.09
MapReduce на Delphi