Главная страница
    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
15-1244444698
Cerberus
2009-06-08 11:04
2009.08.09
Проблемы локальной сети.


15-1244549105
oldman
2009-06-09 16:05
2009.08.09
Все на свете можно заменить кусочком пластилина...


15-1243996706
brother
2009-06-03 06:38
2009.08.09
сайт одноклассники хакнули?


15-1244537205
Neket
2009-06-09 12:46
2009.08.09
Классификация БД


2-1244722300
ronayt
2009-06-11 16:11
2009.08.09
ипользование DirectSS





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