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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.01.2014, 12:22   #11
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,543
По умолчанию

Цитата:
Ну нет полученного символа в алфавите. И что? Это что меняет вообще???
невозможно отобразить шифрованный текст таким образом как раннее мы отображали исходный текст.
также шифртекст не пройдет через любой фильтр настроенный на передачу в рамках исходного алфавита.
Цитата:
не преследовал цель остаться в рамках алфавита.
это как бы основная задача шифрования, а не кодирования. (буквы ->числа, точки-тире(Морзе), .... )
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 22.01.2014, 20:46   #12
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

Ребят, спасибо за ответы, но я пока новичок в шифровании и не понимаю значение сдвигов chr(ord(..)); просто на учебе показали только алгоритм, описанный в моей по, других не знаю) если можно то подробнее растолкуйте) ну или просто поправьте еще мой код, BDA, спасибо большое, а не похожий ли алгоритм вы использовали в написании шифратора для вашего теста?
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Старый 23.01.2014, 03:29   #13
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,430
По умолчанию

Там был шифр Виженера (Вики: Шифр Виженера состоит из последовательности нескольких шифров Цезаря с различными значениями сдвига. Шифр Цезаря — это вид шифра подстановки, в котором каждый символ в открытом тексте заменяется символом находящимся на некотором постоянном числе позиций левее или правее него в алфавите.). А в этой теме рассматривается шифр простой замены, но, в принципе, все эти шифры очень близки как по сути так и по криптоустойчивости.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 23.01.2014, 22:44   #14
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

есть ли советы как сделать шифр более не предсказуемым? то есть допустим сдвигать второй алфавит правее на число length(shifr), а это число допустим записывать с начала новой строчки (пишу уже для текстового редактора) от 0 до richedit1.lines.count-1
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Старый 24.01.2014, 01:43   #15
doktor255
Заблокирован
 
Регистрация: 31.03.2011
Сообщений: 976
По умолчанию

Вот написал простенькую функцию code

Код:
function TForm1.code(c: char; i: integer): char;
  const Alphabet = ' абвгдеёжзийклмнопрстуфхцчшщъыьэюя';
  var n, p: integer;
begin
  result := c;
  p := pos(c, Alphabet);
  if p > 0 then 
    begin
      n := (p + i) mod length(Alphabet);
      if n < 1 then n := length(Alphabet) + n;
      Result := Alphabet[n];
    end;
end;

procedure TForm1.Button1Click(Sender: TObject);
  var i: integer;
  s: string;
begin
  s:= Edit1.Text;
  for i := 1 to Length(s) do
    s[i] := code(s[i], - Length(s));
  Showmessage(s);
  for i := 1 to Length(s) do
    s[i] := code(s[i], Length(s));
  Showmessage(s);
end;
Попробуй с ней поиграть. Обрати внимание, что на вход функции можно подать абсолютно любой параметр сдвига i (положительный, отрицательный, выходящий за размер Alphabet). В примере этот параметр я задаю отрицательной длиною входной строки. Меняй этот параметр на индекс цикла, сочетание индекса цикла с длиной строки и т.д. и получишь свой уникальный алгоритм шифрования. Так же плюс функции, что она не имеет исключений. Если символа нет в массиве Alphabet, возвращается исходный символ. Такой подход более правильный. И не советую применять функцию AnsiLowerCase, так ты теряешь информацию о регистре буквы.

Последний раз редактировалось doktor255; 24.01.2014 в 05:04.
doktor255 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Метод замены V_I_P Общие вопросы C/C++ 1 12.11.2013 02:01
Макрос замены в word Foma-78 Microsoft Office Word 3 19.06.2012 05:33
Замены Igorec Общие вопросы C/C++ 2 22.02.2010 20:15
Диалог замены файла kiber_punk Общие вопросы Delphi 2 24.10.2008 10:02