Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.12.2010, 11:01   #1
MrMoriman
 
Регистрация: 13.12.2010
Сообщений: 3
По умолчанию программа шифрования(Delphi 7)

Программа должна шифровать задаваемые текстовые файлы с помощью циклического сдвига букв русского алфавита (метод Цезаря). Длина сдвига является ключом для расшифровки текстов.
В процессе шифрования в отдельном файле должны накапливаться данные о частоте каждой буквы, эти данные должны быть использованы в дальнейшем для дешифрования текста при неизвестном ключе.

вот код уже написанного
Код:
unit yyy;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit2: TEdit;
    Button2: TButton;
    Memo1: TMemo;
    Memo2: TMemo;
    Memo3: TMemo;
    Label1: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
 rez,str:string;
 strmas:array [1..500] of string[255];
 k,i:integer;
function Shifr(toCode:string; key:integer):string; // зашифровка текста(функция)
var
 ii,T:integer;
begin
 for ii:= 1 to length(toCode) do begin
  T:=(Ord(toCode[ii])+key);
   if T>=256 then dec(T,256);
  toCode[ii]:=Chr(T);
 end;
 Shifr:=toCode;
end;
begin
 k:=strtoint(Edit2.Text);
  for i:=0 to Memo1.Lines.Count-1 do begin
   strmas[i+1]:=Memo1.Lines[i];
   rez:=strmas[i+1];
    Memo2.Lines[i]:=Shifr(rez,k);
  end;

end;

procedure TForm1.Button2Click(Sender: TObject);
var
j,y:integer;
res:string;
DeStr: array [1..500] of string[255];
function RasShifr(toDecode: string; key1:integer): string; // расшифровка текста (функция)
var iii, T: integer;
begin
  for iii := 1 to length(toDecode) do begin
    T := (Ord(toDecode[ iii ]) - key1);
    if T < 0 then Inc(T, 256);
    toDecode[ iii ] := Chr(T);
  end;
  RasShifr := toDecode;
end;

begin
 j:=strtoint(Edit2.Text);
 for y:= 0 to Memo2.Lines.Count -1 do begin
  DeStr[y+1]:=Memo2.Lines[y];
   res:=DeStr[y+1];
    Memo3.Lines[y]:=RasShifr(res,j);
 end;
end;

end.
используетя один Edit, три Memo и две кнопки
наверное желательно ещё MainMenu для работы с файлами


в Делфи почти ни бум-бум
кто может помогите довети до ума, хотя бы чтобы с файлами работала (сохраняла исходный текст в файл, шифровала его и зашифрованный текст сохраняла в отдельном файле) и шифровала и расшифровывала нормально, с известным ключом
уж дешифрование я вообще хз как, всё перелазил, даже толком объяснения нет, как это статистическим методом дешифровывать

Последний раз редактировалось MrMoriman; 13.12.2010 в 11:03.
MrMoriman вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа для шифрования Штрюмба Помощь студентам 3 02.09.2010 14:06
Программа шифрования текстов EnergyNat Фриланс 9 02.03.2010 13:15
Программа для шифрования текста DefenderDf Помощь студентам 3 15.10.2009 20:30
Программа-тест в Delphi) скиньте))а то програмку здавать преподу надо,и самой хочется понять Delphi Верчик Помощь студентам 9 02.03.2009 17:46
шифрования Snake08 Паскаль, Turbo Pascal, PascalABC.NET 13 29.11.2008 00:20