Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 08.11.2012, 15:28
Black_Bear Black_Bear вне форума
Прохожий
 
Регистрация: 08.11.2012
Сообщения: 9
Репутация: 10
По умолчанию простенький шифратор-дешифратор

сложность в следующем: решил дополнить программку которая шифрует и дешифрует текст в окне Edit1 следующим: возможность перебора всех возможных значений ключа(их всего 255 тип то byte!) и отображала бы результаты применения каждого ключа к зашифрованной строке в окне Memo1. запутался с несоответствием типов

Код:
function CodeDecode(S:string;Key:byte):string;
  var i,L,K:word;
  var j:byte;
 begin
  L:=Length(S);

 for i:=1 to L do
  begin
   S[i]:=Chr(Ord(S[i]) xor Key);
  end;
  for j:=0 to 255 do  //все возможные ключи
  begin
    K:=StrToInt(S) xor j;
  Form1.Memo1.Lines.Add(IntToStr(K));
   end;
 Result:=(S);
 end;


procedure TForm1.Button1Click(Sender: TObject); //шифрует и дешифрует(при повторном нажатии )
begin
 Edit1.Text:=CodeDecode((Edit1.Text),10);

end;
Админ: Пользуемся тегами для оформления кода!

Последний раз редактировалось Admin, 08.11.2012 в 15:42.
Ответить с цитированием
  #2  
Старый 08.11.2012, 16:33
icWasya icWasya вне форума
Местный
 
Регистрация: 09.11.2010
Сообщения: 499
Репутация: 10
По умолчанию

Отдели мух от котлет
Код:
function CodeDecode(S:string;Key:byte):string;   // кодирование
var i,L:word;   
begin
  L:=Length(S);
  Result:='';
  SetLength(Result,L);
  for i:=1 to L do
  begin
    Result[i]:=Chr(Ord(S[i]) xor Key);
  end;
end;

procedure Perebor(S:string);// подбор
var j:byte;  
begin
   for j:=0 to 255 do  //все возможные ключи
   begin
    Form1.Memo1.Lines.Add(IntToStr(j)+'  '+CodeDecode(S,j));
   end;
end;

procedure TForm1.Button1Click(Sender: TObject);
 //шифрует и дешифрует(при повторном нажатии ) 
begin 
  //Edit1.Text:=CodeDecode((Edit1.Text),10);   
  Perebor(Edit1.Text);
end;
И поскольку могут получаться непечатные символы, то в мемо могут попадать несколько странные результаты.
Ответить с цитированием
Этот пользователь сказал Спасибо icWasya за это полезное сообщение:
Black_Bear (08.11.2012)
  #3  
Старый 08.11.2012, 23:15
Black_Bear Black_Bear вне форума
Прохожий
 
Регистрация: 08.11.2012
Сообщения: 9
Репутация: 10
По умолчанию

Благодарю за помощь!
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 12:05.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter