зашифровать поток

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

зашифровать поток

Сообщение Attid » 04.12.2007 02:57:12

чет я не догоню, хотю зашифровать поток обычных хором

Код: Выделить всё
procedure CryptBuf(pBuf: Pointer; BufLen: Integer;CodeKey: string);
var
  I: Integer;
  P: pByte;
begin
  P := pBuf;
  if( CodeKey <> '' )then
  for I := 0 to BufLen - 1 do
  begin
   P^ := Byte(CodeKey[1 + ((I - 1) mod Length(CodeKey))]) xor P^;
   inc(P);
  end;
end;


нельзя ли сделать как нибуть так ?
Код: Выделить всё
var fs : TFileStream;
begin
  if sd.Execute then
  begin
    fs := TFileStream.Create(sd.FileName,fmCreate);
    CreateCS(fs);
    fs.Position:=0;
    CryptBuf(fs,fs.Size,'123456');// =)
    fs.Free;
  end;


или надо перегнать в другой поток и шифровать частями ?
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2586
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Сообщение Sergei I. Gorelkin » 04.12.2007 11:59:02

Можно, если поток - TMemoryStream, а Buf - его свойство Memory.
У остальных потоков своей памяти нет, поэтому ее по-любому придется выделять. А одним куском или по частям - уже зависит от размера.
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
 
Сообщения: 1407
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Сообщение debi12345 » 04.12.2007 14:45:43

Мартин в MSE* доводит до ума эти делишки, на базе SSL - траффик через пайпы и сокеты шифровать. Уже на подходе.
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5761
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)


Вернуться в Free Pascal Compiler

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7

Рейтинг@Mail.ru