Вторник, 01.09.2026, 10:01
Приветствую Вас Гость | RSS
Меню сайта
Категории раздела
Примеры шифрования [8]
Шифрование методом Льюиса, Шифрование методом Атбаш, Шифрование методом Цезаря, Квадрат Полибия, Шифр Вижинера, Шифр Гронсфельда, Шифрование с помощью решетки, Шифр Хилла (с длиной блока = 2),
Наш опрос
Оцените мой сайт
Всего ответов: 135
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Главная » Статьи » Шифрование текстов на паскале » Примеры шифрования

Шифр Вижинера
const
  TViginer: string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
 
function ViginerEncipher(toCode, K: string): string;
var
  i: integer;
  currK: byte;
  s: string;
begin
  s := '';
  for i := 1 to length(toCode) do begin
  currK := pred(pos(K[ (pred(i) mod length(K)) + 1 ], TViginer));
  s := s +
  TViginer[ ((pred(pos(toCode[ i ], TViginer)) + currK) mod length(TViginer)) + 1 ];
  end;
  ViginerEncipher := s;
end;
 
function ViginerDecipher(toDecode, K: string): string;
var
  i, T: integer;
  currK: byte;
  s: string;
begin
  s := '';
  for i := 1 to length(toDecode) do begin
  currK := pred(pos(K[ (pred(i) mod length(K)) + 1 ], TViginer));
  T := pred(pos(toDecode[ i ], TViginer)) - currK;
  if T < 0 then inc(T, length(TViginer));
  s := s + TViginer[T + 1];
  end;
  ViginerDecipher := s;
end;
 
var
  s: string;
 
begin
  s := ViginerEncipher('INFORMATION', 'BORED');
  writeln(s);
  writeln('s = ', ViginerDecipher(s, 'BORED'));
end.




Категория: Примеры шифрования | Добавил: Student (29.07.2009)
Просмотров: 5114 | Комментарии: 1 | Рейтинг: 2.5/2 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа
Поиск
Друзья сайта
  • Курсовая работа
  • www.des.h19.ru - портал для вас и Вашего ПК



    Rambler's Top100 WOlist.ru - каталог качественных сайтов Рунета