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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.04.2011, 17:15   #1
Shamonya
Пользователь
 
Регистрация: 05.11.2010
Сообщений: 17
По умолчанию DES

Нужна программа DES на делфи, или на крайняк паскаль
Встретил в нете кучу программ но я невтупляю как там происходят перестановки битов, тоннее их вообще не делают
Ктонить может скинуть программу где всё более пошагово написано




Код:
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DES, StdCtrls;
type
  TForm1 = class(TForm)
    Label1: TLabel;
    Edit1: TEdit;
    Label2: TLabel;
    Memo1: TMemo;
    Button1: TButton;
    Label3: TLabel;
    Memo2: TMemo;
    Button2: TButton;
    Memo3: TMemo;
    Label4: TLabel;
    Memo4: TMemo;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Memo1Change(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Edit1Change(Sender: TObject);
    procedure Memo2Change(Sender: TObject);
  private
    { Private declarations }
  public
    Data:TBitString;
  end;
var
  Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
Var
I:Integer;
S:String;
begin
IF ((Length(Memo1.Text)mod 8 <> 0) OR (Length(Edit1.Text)mod 8 <> 0)) Then
  Begin
  MessageBox(Handle,
  'Количество букв в сообщении должно быть кратоно 8 (перевод строки считается за 2 буквы)'+
  #10#13'Ключ должен состоять из 8 символов',
  Nil,MB_ICONSTOP);
  Exit;
  End;
SetLength(Data,0);
I:=1;
While I<=Length(Memo1.Text) Do
  Begin
  S:=Copy(Memo1.Text,I,8);
  Data:=ConcatBits([Data,DESEncode(S,Edit1.Text)]);
  I:=I+8;
  End;
Memo2.Text:=BinToAnsiStr(Data);
end;
procedure TForm1.Button2Click(Sender: TObject);
var
I:Integer;
begin
IF ((Length(Memo2.Text)mod 8 <> 0) OR (Length(Edit1.Text)mod 8 <> 0)) Then
  Begin
  MessageBox(Handle,
  'Количество букв в сообщении должно быть кратоно 8 (перевод строки считается за 2 буквы)'+
  #10#13'Ключ должен состоять из 8 символов',
  Nil,MB_ICONSTOP);
  Exit;
  End;
SetLength(Data,0);
I:=1;
While I<=Length(Memo2.Text) Do
  Begin
  Data:=ConcatBits([Data,DESDecode(Copy(Memo2.Text,I,8),Edit1.Text)]);
  I:=I+8;
  End;
Memo1.Text:=BinToAnsiStr(Data);
end;
procedure TForm1.Memo1Change(Sender: TObject);
begin
IF Memo1.Text<>'' Then
  Memo3.Text:=BinToStr(AnsiStrToBin(Memo1.Text))
Else Memo3.Clear;
Label2.Caption:='Message - ('+IntToStr(Length(Memo1.Text))+' characters)';
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Memo1.OnChange(Self);
Edit1.OnChange(Self);
end;
procedure TForm1.Edit1Change(Sender: TObject);
begin
Label4.Caption:=IntToStr(Length(Edit1.Text))+' characters';
end;
procedure TForm1.Memo2Change(Sender: TObject);
begin
IF Memo2.Text<>'' Then
  Memo4.Text:=BinToStr(AnsiStrToBin(Memo2.Text))
Else Memo4.Clear;
Label3.Caption:='Encoded message - ('+IntToStr(Length(Memo2.Text))+' characters)';
end;
end.

нашёл в интернете, вроде работает, но опять же непонятно как
Data:=ConcatBits([Data,DESEncode(S,Edit1.Text)]); что тут делаеться?
Data:=ConcatBits([Data,DESDecode(Copy(Memo2.Text,I,8) ,Edit1.Text)]); и тут
Буду рад любой помощи
Shamonya вне форума Ответить с цитированием
Старый 12.04.2011, 17:26   #2
mss
Заблокирован
 
Регистрация: 27.05.2010
Сообщений: 1,099
По умолчанию

Объединение (конкатенация) двух строк, каждая из которых содержит двоичное представление некоторой битовой последовательности
mss вне форума Ответить с цитированием
Старый 12.04.2011, 18:08   #3
Shamonya
Пользователь
 
Регистрация: 05.11.2010
Сообщений: 17
По умолчанию

а где тут идёть перестановка бит?
Shamonya вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как зашифровать слово с по алгоритму шифрования DES UrazakovRim Безопасность, Шифрование 12 22.02.2015 18:27
Очень срочно! Алгоритм шифрования DES... Regloger Помощь студентам 15 14.05.2013 17:04
Дифференциальный криптоанализ Des alkur Помощь студентам 0 25.04.2010 13:15
Help! Инет на два компа через D-Link DES-3010G Intelligence Компьютерное железо 6 31.03.2009 09:34