ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Шифрование файла
  #1  
Старый 05.11.2007, 11:41
Ci5
Постоянный
Регистрация: 10.10.2006
Сообщений: 316
Провел на форуме:
1572471

Репутация: 152
Отправить сообщение для Ci5 с помощью ICQ
По умолчанию Шифрование файла

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

Мне не нужен сложный алгоритм. Очень простенько. Просто еще ни разу с этим не связывался. Пишу на Delphi.
 
Ответить с цитированием

  #2  
Старый 05.11.2007, 11:48
D0zz
Новичок
Регистрация: 06.09.2006
Сообщений: 29
Провел на форуме:
88894

Репутация: 22
По умолчанию

ну если очень просто и не надёжно, то можно по тупому xor'ить данные из файла с каким-то одному тебе известным ключом. А вообще если нужна надёжность лучше использовать готовые проверенные библиотеки и алгоритмы
 
Ответить с цитированием

  #3  
Старый 05.11.2007, 11:54
Ci5
Постоянный
Регистрация: 10.10.2006
Сообщений: 316
Провел на форуме:
1572471

Репутация: 152
Отправить сообщение для Ci5 с помощью ICQ
По умолчанию

Ну xor'ить это все понятно. Ну как будет выглядить пример шифрования файла хотябы через xor ?
 
Ответить с цитированием

  #4  
Старый 05.11.2007, 12:46
ZAMUT
Members of Antichat - Level 5
Регистрация: 24.10.2007
Сообщений: 256
Провел на форуме:
6905523

Репутация: 1174
По умолчанию

Когда начинал изучать дельфина, все просто и понятно =) Если нужны комменты, могу написать.
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, StdCtrls, ComCtrls, jpeg, ExtCtrls, XPMan;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    OpenDialog1: TOpenDialog;
    SaveDialog1: TSaveDialog;
    MainMenu1: TMainMenu;
    Button2: TButton;
    N1: TMenuItem;
    N2: TMenuItem;
    N5: TMenuItem;
    CheckBox1: TCheckBox;
    ProgressBar1: TProgressBar;
    Edit3: TEdit;
    Edit4: TEdit;
    Image1: TImage;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    XPManifest1: TXPManifest;
    Label5: TLabel;
    Label7: TLabel;
    Label6: TLabel;
    procedure N5Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.N5Click(Sender: TObject);
begin
close;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
 f:file of byte;
 f2,f3:textfile;
 i,k,n,k2,ll,l,th,g,razmer,peremen,keyl:integer;
 b:byte;
 s,key,keyp:string;
 p,sum:real;
begin
 g:=0;
 key:=Edit3.Text ;
 keyp:=Edit4.Text;
 if (key=keyp)and (Key<>'') then begin
 s:=Edit1.text;
 if s<>'' then begin
 key:=Edit3.Text ;
 keyp:=Edit4.Text;
 keyl:=length(key);
 k:=length(s);
 k2:=pos(s,'.');
 Delete(s,k2,3);
 s:=s+'.crpt';
 AssignFile(f,Edit1.text);
 AssignFile(f2,s );
 Reset(f);
 ReWrite(f2);
 razmer:=FileSize(f);
 ProgressBar1.Max:=razmer;
 peremen:=1;
 While not eof(f) do begin
  if g=2147483646 then g:=0;
  If peremen >= keyl then peremen:=1;
  Read(f,b);
  k:=ord(b);
  th:= k xor (  (ord(key[peremen])  + g));
  Write(f2,chr(th));
  ProgressBar1.StepBy(1);
  peremen:=peremen+1;
  g:=g+1;
 end;
  Edit2.text:=s;
  ShowMessage('Файл зашифрован');
  ProgressBar1.Position:=0;
  CloseFile(f);
  CloseFile(f2);
  if CheckBox1.Checked=true then Erase(f);
  CheckBox1.Checked:=false;
  Edit1.Text:='';
  Edit2.Text:='';
  Edit3.Text:='';
  Edit4.Text:='';
  OpenDialog1.FileName:='';
  end;
  end;
end;

procedure TForm1.N2Click(Sender: TObject);
var
s:string;
begin
OpenDialog1.Execute ;
s:=OpenDialog1.FileName ;
Edit1.Text:=s;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
 SR:TSearchRec;
 a:TfileStream;
 q:byte;
 s,s2,s3,key,keyp:string;
 n,t,k,i,razmer,g,peremen,keyl:integer;
 f3:textfile;
 begin
 g:=0;
 s:=OpenDialog1.FileName ;
 s2:=Copy(s,k-4,5);
 if (s2<>'.crpt')and (s2<>'') then  ShowMessage('Не является зашифрованным файлом!') else begin
 key:=Edit3.Text ;
 keyp:=Edit4.text;
 if (key=keyp)and (key<>'') then begin
 if s<>'' then begin
 keyl:=length(key);
 a:=TfileStream.Create(s,fmOpenRead);
 s3:=s;
 razmer:=a.Size;
 ProgressBar1.Max:=razmer;
 k:=length(s);
 Delete(s,k-4,5);
 s2:=s;
 AssignFile(f3,s2);
 ReWrite(f3);
 peremen:=1;
  for i:=1 to razmer do begin
  if g=2147483646 then g:=0;
  If peremen >= keyl then peremen:=1;
  a.Read(q,1);
  t:= q xor (  (ord(key[peremen])  +g));
  a.Seek(0,1) ;
  Write(f3,chr(t));
  ProgressBar1.StepBy(1);
  peremen:=peremen+1;
  g:=g+1;
 end;
 CloseFile(f3);
 FileClose(0);
 a.Destroy;
 Edit2.text:=s;
 if CheckBox1.Checked=true then begin DeleteFile(OpenDialog1.FileName); end;
 CheckBox1.Checked:=false;
 ShowMessage('Файл расшифрован!');
 ProgressBar1.Position:=0;
 Edit1.Text:='';
 Edit2.Text:='';
 Edit3.Text:='';
 Edit4.Text:='';
 OpenDialog1.FileName;
end;
end;
end;
end;
end.
Подкорректирован код и ссылка на exe
Код:
http://depositfiles.com/files/2266774

Последний раз редактировалось ZAMUT; 05.11.2007 в 13:11..
 
Ответить с цитированием

  #5  
Старый 05.11.2007, 13:39
ZAMUT
Members of Antichat - Level 5
Регистрация: 24.10.2007
Сообщений: 256
Провел на форуме:
6905523

Репутация: 1174
По умолчанию

У меня используется симметричный метод - гаммирование, с при помощи операции xor, ну и пара действий над входным ключом.
 
Ответить с цитированием

  #6  
Старый 05.11.2007, 15:04
Ci5
Постоянный
Регистрация: 10.10.2006
Сообщений: 316
Провел на форуме:
1572471

Репутация: 152
Отправить сообщение для Ci5 с помощью ICQ
По умолчанию

[x26]VOLAND, поподробней можна ?

spinedit1.value; - тут чем является ?
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Использование файла .htaccess в оптимизации и управлении сайтом Solide Snake Статьи 0 27.10.2007 00:08
Урок анатомии .exe-вирусы $iD Авторские статьи 1 08.03.2007 10:15
Пароль в CPanel ufo44 Уязвимости 11 07.12.2006 00:33
чтиво для новичков genom-- *nix 5 20.10.2006 19:17



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ