Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Повышение криптоустойчивости шифрования текста любым алгоритмом

Delphi , Синтаксис , Шифрование



Автор: Delirium
WEB-сайт: http://delphibase.endimus.com

{ **** UBPFD *********** by delphibase.endimus.com ****
>> 
Данная функция (AddDisturbToText) представляет собой
подготовительную операцию перед шифрацией текста любым
алгоритмом. Функция добавляет в текст случайное количество
непечатных символов, располагая их хаотически.
Таким образом подготовленный текст, после шифрации
одним и тем-же ключом, не зависимо от алгоритма,
каждый раз будет выглядеть по разному и количественно
и качественно, что практически сводит на нет любой
статистический анализ. При расшифровке, непечатные
символы элементарно вычищаются функцией RemoveDisturbFromText.

Зависимости: SysUtils
Автор:       Delirium, VideoDVD@hotmail.com, ICQ:118395746
Copyright:   Delirium (Master BRAIN) 2004
Дата:        28 февраля 2004 г.
***************************************************** }

const
  NPCS: set of char = [#0..#8, #11, #12, #14..#31, '' ];

  // Добавление в текст непечатных символов

function AddDisturbToText(Source: string): string;
var
  n, c: integer;
begin
  Randomize;
  Result := Source;
  n := (Length(Source) * 2) + Random(Length(Source));
  while Length(Result) < n do
  begin
    c := Random(128);
    if Chr(c) in NPCS then
      Insert(Chr(c), Result, Random(Length(Result)) + 1)
  end;
end;

// Убрать из текста непечатные символы

function RemoveDisturbFromText(Source: string): string;
var
  i: integer;
begin
  Result := Source;
  i := 1;
  while i < Length(Result) do
    if Result[i] in NPCS then
      Delete(Result, i, 1)
    else
      Inc(i);
end;

Программа на Delphi, которая предназначена для улучшения криптостабильности текстовой шифровки, добавляя случайные непечатаемые символы (NPC) в текст перед шифровкой. Программа состоит из двух функций: AddDisturbToText и RemoveDisturbFromText.

Функция AddDisturbToText Эта функция принимает строковый ввод (Source) и добавляет случайное количество NPC к нему, случайно распределяя их по всей строке. Количество NPC вычисляется как (Length(Source) * 2) + Random(Length(Source)). Процедура Randomize вызывается в начале для инициализации генератора случайных чисел.

Функция повторяется до тех пор, пока длина полученной строки не достигнет рассчитанного значения. В каждом цикле она генерирует случайный символ (c) и проверяет, является ли он NPC с помощью оператора in для множества NPCS. Если это так, функция вставляет NPC в случайную позицию в полученной строке.

Функция RemoveDisturbFromText Эта функция принимает строковый ввод (Source) и удаляет все NPC из него. Она проходит по строке, проверяя каждый символ, является ли он NPC с помощью оператора in для множества NPCS. Если это так, функция удаляет этот символ из строки.

Предложения и улучшения 1. Обработка ошибок: Программа не обрабатывает ошибки или исключения должным образом. Например, что происходит, если вводная строка пуста? Хорошая практика - добавить механизмы обработки ошибок для обеспечения корректного поведения программы в всех сценариях. 2. Оптимизация производительности: Процедура Randomize вызывается в начале каждого вызова функции. Это может привести к проблемам с производительностью для больших вводов или повторных вызовов. Рекомендуется вызвать Randomize только один раз, перед входом в основной цикл, и использовать снова сгенерированные случайные числа. 3. Организация кода: Программа могла быть организована лучше, разделив заботы о различных единицах (например, одна единица для генерации NPC, другая - для манипуляции текстом). 4. Комментарии: Хотя в коде есть некоторые комментарии, было бы полезно добавить больше комментариев, объясняющих цель каждой функции и переменной. 5. Альтернативные решения: Вместо использования множества NPCconsider generating random Unicode characters that are not printable (e.g., using the Chr $FFFD) to make the program more robust.

В целом, программа хорошо структурирована, и код легко читается. Однако есть области для улучшения, особенно в отношении обработки ошибок, оптимизации производительности и организации кода.

Функция AddDisturbToText добавляет в текст случайное количество непечатных символов, располагая их хаотически, что обеспечивает повышение криптоустойчивости шифрования текста любым алгоритмом.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Шифрование ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-04-04 02:40:30/0.0057461261749268/0