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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.02.2013, 14:40   #1
Roman2008
Новичок
Джуниор
 
Регистрация: 15.02.2013
Сообщений: 2
Сообщение Блок-схему к программе RSA

Код:
unit Unit16;

interface

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

type

  TIncodeMes = array of Integer;

  TForm16 = class(TForm)
    Memo1: TMemo;
    Memo2: TMemo;
    Button1: TButton;
    Memo3: TMemo;
    Button2: TButton;
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Image1: TImage;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    FMes: TIncodeMes;
  public
    { Public declarations }
  end;

var
  Form16: TForm16;
  i,n:Integer;

implementation
uses math;

{$R *.dfm}

function Encrypt(s: string; e:integer): TIncodeMes;
var
  res,j: Integer;
begin
  SetLength(result, length(s));
  for i := 0 to Length(s) - 1 do
  begin
    res:=1;
    for j:=1 to e do  // возведение в степень
      res:=(res*ord(s[i + 1])) mod n;
    result[i] := res;
  end;
end;

function Decrypt(Arr: array of integer; e:Integer): string;
var
  res,j:Integer;
begin
  SetLength(Result, Length(Arr));
  for i := 0 to Length(Arr) - 1 do
  begin
    res:=1;
    for j:=1 to e do  // возведение в степень
      res:=(res*arr[i]) mod n;
    result[i + 1] := chr(res);
  end;
end;

//Шифрование текста в Memo
procedure TForm16.Button1Click(Sender: TObject);
var
  e: Integer;
begin
  n := StrToIntDef(Edit3.Text, 697);
  e := StrToIntDef(Edit2.Text, 7);
  FMes := Encrypt(Memo1.Lines.Text, e);
  for i := 0 to High(FMes) do
    Memo2.Lines.Append(IntToStr(FMes[i]));
end;

//Дешифровка сообщения
procedure TForm16.Button2Click(Sender: TObject);
var
  d: integer;
  s : string;
begin
  d := StrToIntDef(Edit1.Text, 183);
  n := StrToIntDef(Edit3.Text, 697);
  s := Decrypt(FMes,d);
  Memo3.Lines.Add(s)
end;

end.
Roman2008 вне форума Ответить с цитированием
Старый 16.02.2013, 17:40   #2
hon
Форумчанин
 
Регистрация: 08.06.2011
Сообщений: 693
По умолчанию

Очень вежливо оформлен вопрос!
Очень доступно оформлена проблема!
hon вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Составить блок схему по программе!!! С++ Tommy-gun Помощь студентам 1 28.12.2012 07:13
составить блок-схему к программе Julia94 Паскаль, Turbo Pascal, PascalABC.NET 1 21.11.2012 09:34
составить блок-схему к программе Julia94 Паскаль, Turbo Pascal, PascalABC.NET 0 20.11.2012 22:56
Составьте блок схему к программе Tolian92 Помощь студентам 4 26.01.2012 07:46
Составить блок-схему к программе: Алексей Шевченко Паскаль, Turbo Pascal, PascalABC.NET 1 06.01.2012 11:58