Главная страница
    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.46 MB
Время: 0.004 c
1-1211900401
viperv
2008-05-27 19:00
2009.08.09
скачать файл из инета


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


15-1244700982
Рамиль
2009-06-11 10:16
2009.08.09
Бесплатные менеджеры проектов


15-1244467705
blackman
2009-06-08 17:28
2009.08.09
Дамп MySql в в Access


8-1196042949
JJey
2007-11-26 05:09
2009.08.09
Как из Delphi запустить презентацию PowerPoint





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский