Форум программистов, компьютерный форум, киберфорум
Delphi
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/29: Рейтинг темы: голосов - 29, средняя оценка - 4.86
19 / 19 / 9
Регистрация: 22.11.2010
Сообщений: 321
1

Шифр Вернама

04.06.2013, 09:45. Показов 5862. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Шифр вроде работает, помогите с расшифровкой или может у кого есть исходники шифра Вернама
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
procedure TForm1.shifr_Vernam;
var
  oStr, key, shStr :string;
  i:integer;
begin
  oStr:=edt1.Text;
  shStr:=''; // данные, которые будем инициализировать сами - обнуляем.
  key:='';
  randomize;
 
  for i:=1 to length(oStr) do
    key:=key+Chr(random(255));
  for i:=1 to length(oStr) do
    shstr:=shstr+Chr(byte(ostr[i]) xor byte(key[i])); // и добавляем по зашифрованному символу к зашифрованной строке.
     edt3.Text:= key;
 lbl1.Caption:= ('Otkrytyi text: ' + oStr);
edt2.Text:= (shStr);
 
end;
 
 procedure TForm1.sButton2Click(Sender: TObject);
begin
 shifr_Vernam;
end;
 
 
 
 
procedure TForm1.sButton1Click(Sender: TObject);
var
 
  oStr, key, shStr:string;
 
  i:integer;
 
begin
 
  oStr:=edt1.Text;  //определяем открытый текст
 
  randomize; //Необходимая функция для функции random, чтобы последняя каждый раз выдавала случайные значения
 
//генерируем случайный ключ длиной равной длине открытого текста
 
  for i:=1 to length(oStr) do
 
  key:=key+Chr(random(255)); //генерируем случайное число из диапозона от 0 до 255, и полученое число переводим в символ;
  edt3.Text:= key;
end;
Добавлено через 20 минут
И ещё не могу понять правильно шифрует или нет и зачем нужна вот эта часть кода:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
procedure TForm1.sButton1Click(Sender: TObject);
var
 
  oStr, key, shStr:string;
 
  i:integer;
 
begin
 
  oStr:=edt1.Text;  //определяем открытый текст
 
  randomize; //Необходимая функция для функции random, чтобы последняя каждый раз выдавала случайные значения
 
//генерируем случайный ключ длиной равной длине открытого текста
 
  for i:=1 to length(oStr) do
 
  key:=key+Chr(random(255)); //генерируем случайное число из диапозона от 0 до 255, и полученое число переводим в символ;
  edt3.Text:= key;
end;
Код взят отсюда: http://zetblog.ru/programming/... omment-927

Добавлено через 5 минут
Разобрался эта часть кода не нужна
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.06.2013, 09:45
Ответы с готовыми решениями:

Шифр Виженера
Уважаемые Дамы и Господа! Есть такая вот задача: Разработать систему шифрования информации,...

Шифр Тритемиуса
помогите создать программу на тему шифр тритемиуса.....так то я в общем понял но если кто подробно...

Шифр Атбаш
Подскажите. Как привязать работу с только русской раскладкой, и ни с чем более. Исходный текст: ...

Шифр Вернама
Надо создать программу, которая шифрует текст, есть предположения, как это сделать?

1
19 / 19 / 9
Регистрация: 22.11.2010
Сообщений: 321
04.06.2013, 12:48  [ТС] 2
как сделать более 255 символов?
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
//---------------------ШИФР------------------------
procedure TForm1.shifr_Vernam;
var
  oStr, key, shStr :string;
  i:integer;
begin
  oStr:=mmo1.Text;
  shStr:=''; // данные, которые будем инициализировать сами - обнуляем.
  key:='';
  randomize;
 
  for i:=1 to length(oStr) do
    key:=key+Chr(random(255));
  for i:=1 to length(oStr) do
    shstr:=shstr+Chr(byte(ostr[i]) xor byte(key[i])); // и добавляем по зашифрованному символу к зашифрованной строке.
    mmo4.Text:= key;
    mmo2.Text:= (shStr);
 
end;
 
//---------------------ВЫЗОВ ШИФРА------------------------
 procedure TForm1.sButton2Click(Sender: TObject);
begin
 shifr_Vernam;
end;
 
//---------------------ДЕШИФРОВКА------------------------
procedure TForm1.sButton4Click(Sender: TObject);
var
  oStr, key, shStr :string;
  i:integer;
begin
  key:=mmo4.text;
  oStr:=mmo2.Text;
for i:=1 to length(oStr) do
  shstr:=shstr+Chr(byte(ostr[i]) xor byte(key[i]));
  mmo3.text:=shStr;
end;
 
//---------------------ЗАГРУЗКА ТЕКСТА В MEMO------------------------
procedure TForm1.FormCreate(Sender: TObject);
var
  dir:string;
begin
getdir(0,dir);
dir:=dir+'\data.ini';
mmo1.Lines.LoadFromFile(dir);
end;
 
end.
Вложения
Тип файла: rar Shifr.rar (484.8 Кб, 216 просмотров)
0
04.06.2013, 12:48
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.06.2013, 12:48
Помогаю со студенческими работами здесь

Шифр Вернама (Сложение двух Edit-ов)
Здравствуйте,Уважаемые форумчане.возникла тут у меня проблема на пустом месте... В двух Edit-ах...

Составить программу шифрования и расшифровки в Delphi по соответствующему заданию: шифр Атбаш + шифр Цезеря
Составить программу шифрования и расшифровки в Delphi по соответствующему заданию: шифр Атбаш +...

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

Шифр
Доброго времени суток. Возникла проблема с шифром, вместо пробелов ставит ! знаки может кто знает...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru