Простое симметричное шифрование строкDelphi , Синтаксис , ШифрованиеПростое симметричное шифрование строк
Автор: Anatoly Podgoretsky { **** UBPFD *********** by delphibase.endimus.com **** >> Шифрование строки Предназначена для простого шифрование строк и паролей, ключ 96 бит, шифрование симметричное. Зависимости: UBPFD.decrypt Автор: Anatoly Podgoretsky, anatoly@podgoretsky.com, Johvi Copyright: (c) Anatoly Podgoretsky, 1996 Дата: 26 апреля 2002 г. ***************************************************** } const StartKey = 471; // Start default key MultKey = 62142; // Mult default key AddKey = 11719; // Add default key // обязательно смените ключи до использования function Encrypt(const InString: string; StartKey, MultKey, AddKey: Integer): string; var I: Byte; // Если поменять тип переменной I на Integer, то будет возможно // шифрование текста длиной более 255 символом - VID. begin Result := ''; for I := 1 to Length(InString) do begin Result := Result + CHAR(Byte(InString[I]) xor (StartKey shr 8)); StartKey := (Byte(Result[I]) + StartKey) * MultKey + AddKey; end; end; Пример использования: if Encrypt(S, StartKey, MultKey, AddKey) <> OriginalPwd then ... { **** UBPFD *********** by delphibase.endimus.com **** >> Расшифровка строки Предназначена для расшифровки строки, ранее зашифрованной фукцией UBPFD.Encrypt Зависимости: UBPFD.Encrypt Автор: Anatoly Podgoretsky, anatoly@podgoretsky.com, Johvi Copyright: (c) Anatoly Podgoretsky, 1996 Дата: 26 апреля 2002 г. ***************************************************** } const StartKey = 471; // Start default key MultKey = 62142; // Mult default key AddKey = 11719; // Add default key // обязательно смените ключи до использования {$R-} {$Q-} function Decrypt(const InString: string; StartKey, MultKey, AddKey: Integer): string; var I: Byte; // Если поменять тип переменной I на Integer, то будет возможно // шифрование текста длиной более 255 символом - VID. begin Result := ''; for I := 1 to Length(InString) do begin Result := Result + CHAR(Byte(InString[I]) xor (StartKey shr 8)); StartKey := (Byte(InString[I]) + StartKey) * MultKey + AddKey; end; end; {$R+} {$Q+} Пример использования: S := 'Ваш старый пароль: <' + Decrypt(S, StartKey, MultKey, AddKey) + '>'; Код, предоставленный ниже, это простой алгоритм симметричного шифрования и дешифрования на языке Delphi. Он использует операцию XOR для шифрования входной строки и custom-ключевой алгоритм для дешифрования. Шифрование
Функция Функция проходит по каждому символу в входной строке, выполняет операцию XOR между значением ASCII-символа и текущим Дешифрование
Функция Пример использования
Пример кода демонстрирует использование функций Безопасные concerns Хотя это шифрование простое, оно имеет некоторые безопасные concerns:
Альтернативные решения Для более безопасного шифрования системы рекомендуется использовать установленные криптографические библиотеки, такие как OpenSSL или встроенная поддержка SSL/TLS в Delphi. Кроме того, рекомендуется использовать более robust-ключевые генераторы и методы управления ключами, такие как случайное генерирование ключей или использование публично-правовой криптографии (например, RSA). Простое симметричное шифрование строк с использованием алгоритма UBPFD для защиты паролей и строк. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: Шифрование ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |