Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
0 / 0 / 0
Регистрация: 09.01.2017
Сообщений: 62
1

Шифрация и дешифрация текстового файла методом циклического сдвига алфавита на основе числового ключа (Шифр Гронсфельда)

01.03.2018, 11:32. Показов 2648. Ответов 9
Метки нет (Все метки)

Помогите сделать задание, "Реализовать функции шифрации и дешифрации текстового файла методом циклического сдвига алфавита. Сдвиг должен осуществляться на основе числового ключа (Шифр Гронсфельда)" на делфи нужно
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.03.2018, 11:32
Ответы с готовыми решениями:

Шифрация и дешифрация текстового файла методом циклического сдвига алфавита
Помогите кому не сложно нужно Реализовать функции шифрации и дешифрации текстового файла методом...

Шифрование текста методом циклического сдвига букв алфавита
помогите пожалуйста решить задачи))) Задача№1 Составить программу, которая вводит текст...

Написать программы шифрования и расшифровки файла методом циклического сдвига
Написать программы шифрования и расшифровки файла методом циклического сдвига. Т.е. каждый символ...

Шифрование текстового файла методом Гронсфельда
доброго времени суток! помогите, пожалуйста, написать программу "из внешнего файла в формате «ТХТ»...

__________________
9
Модератор
6792 / 4381 / 1874
Регистрация: 21.01.2014
Сообщений: 18,552
Записей в блоге: 3
01.03.2018, 11:48 2
А вот напрягите палец на руке, покрутите колесо мыши до конца страницы - увидите много интересного...
0
0 / 0 / 0
Регистрация: 09.01.2017
Сообщений: 62
01.03.2018, 11:55  [ТС] 3
там шифруется строка, а мне нужно целиком файл весь текст например который в тхт, не надо умничать пожалуйста!
0
Модератор
63335 / 47046 / 32428
Регистрация: 18.05.2008
Сообщений: 114,040
01.03.2018, 11:57 4
Цитата Сообщение от Максим9605 Посмотреть сообщение
а мне нужно целиком файл
А ничего что текстовый файл состоит из строк?
0
Модератор
6792 / 4381 / 1874
Регистрация: 21.01.2014
Сообщений: 18,552
Записей в блоге: 3
01.03.2018, 12:16 5

Не по теме:

Цитата Сообщение от Максим9605 Посмотреть сообщение
не надо умничать
Да где уж нам... :pardon:



Добавлено через 1 минуту
Цитата Сообщение от Puporev Посмотреть сообщение
А ничего что текстовый файл состоит из строк?
Более того, весь текстовый файл легко представим в виде одной строки (типа StringList.Text)
0
AlexSky-coder
01.03.2018, 17:09
  #6

Не по теме:

Вот так задают люди вопрос на форуме, а потом Bad Rabbit и NotPetya по всем новостям.

0
0 / 0 / 0
Регистрация: 09.01.2017
Сообщений: 62
04.03.2018, 15:26  [ТС] 7
выдает разные символы, которые дешифровать не получается
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
unit Unit6;
 
interface
 
uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;
 
type
  TForm6 = class(TForm)
    Memo1: TMemo;
    Memo2: TMemo;
    Edit1: TEdit;
    Button1: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Memo3: TMemo;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form6: TForm6;
a,k,s:string;
implementation
 
{$R *.dfm}
  function GronsfeldEncipher(toCode, K: string): string;
var i, T : integer;
begin
  for i := 1 to length(toCode) do
   begin
    T := (Ord(toCode[i]) + (Ord(K[(pred(i) mod length(K)) + 1]) - Ord('0')));
    if T >= 256 then dec(T, 256);
    toCode[ i ] := Chr(T);
   end;
  result := toCode;
end;
 
function GronsfeldDecipher(toDecode, K: string): string;
var i, T: integer;
begin
  for i := 1 to length(toDecode) do
   begin
    T := (Ord(toDecode[i]) - (Ord(K[(pred(i) mod length(K)) + 1]) - Ord('0')));
    if T < 0 then Inc(T, 256);
    toDecode[ i ] := Chr(T);
   end;
  result := toDecode;
end;
 
procedure TForm6.Button1Click(Sender: TObject);
 
begin
 memo2.Text := GronsfeldEncipher(memo1.Text, Edit1.Text);
 
end;
 
procedure TForm6.Button2Click(Sender: TObject);
begin
  memo3.Text := GronsfeldDecipher(memo2.Text, edit1.Text);
end;
 
end.
0
0 / 0 / 0
Регистрация: 09.01.2017
Сообщений: 62
04.03.2018, 17:43  [ТС] 8
вот, что не так?, код программы выше
0
Миниатюры
Шифрация и дешифрация текстового файла методом циклического сдвига алфавита на основе числового ключа (Шифр Гронсфельда)  
Да так, от скуки захожу.
128 / 112 / 39
Регистрация: 25.06.2017
Сообщений: 288
Записей в блоге: 2
04.03.2018, 18:38 9
У меня твой код работает норм.
1
Миниатюры
Шифрация и дешифрация текстового файла методом циклического сдвига алфавита на основе числового ключа (Шифр Гронсфельда)  
Модератор
6792 / 4381 / 1874
Регистрация: 21.01.2014
Сообщений: 18,552
Записей в блоге: 3
05.03.2018, 06:18 10
Лучший ответ Сообщение было отмечено Максим9605 как решение

Решение

Цитата Сообщение от Максим9605 Посмотреть сообщение
что не так?
Максим9605, не так то, что Вы работаете в юникодной версии Delphi, в которую пытаетесь вставить код, созданный (самое позднее) для Дельфи 7! Но сообщать свою версию Delphi, конечно же, никогда и никому не надо! Это же шифр - все секретно!

В общем, 2 Ваши функции сокращаются до одной:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
function Gronsfeld(_Text, K: AnsiString; Encode: integer): AnsiString;
var i, t: integer;
    b: boolean;
begin
 result := '';
 for i := 1 to Length(_Text) do
  begin
    t := Ord(_Text[i]) + Encode * (Ord(K[(pred(i) mod length(K)) + 1]) - Ord('0'));
    if Encode = 1 then b := t >= 256 else b := t < 0;
    if b then dec(t, Encode * 256);
    result := result + AnsiChar(Chr(t));
  end;
end;
и, соответственно, меняются вызовы:
Кодирование:
Delphi
1
memo2.Text := Gronsfeld(memo1.Text, edit1.Text, 1);
Декодирование
Delphi
1
memo3.Text := Gronsfeld(memo2.Text, edit1.Text, -1);
1
Миниатюры
Шифрация и дешифрация текстового файла методом циклического сдвига алфавита на основе числового ключа (Шифр Гронсфельда)  
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.03.2018, 06:18

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Как закодировать методом циклического сдвига?
Здравствуйте! Вопрос такой, что представляет из себя кодировка методом циклического сдвига на 2...

Шифрация и дешифрация пароля
Здравствуйте! Есть такой вопрос нужно зашифровать пароль который хранится в таблице БД... Есть...

Шифрование и дешифрование методом гаммирования и поразрядного циклического сдвига
Добрый день! У меня не получается шифрование и расшифрование методом гаммирования и поразрядного...

Шифрование и расшифрование методом гаммирования и поразрядного циклического сдвига
Добрый день! У меня не получается написать программу шифрования и расшифрования методом...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.