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

Алгоритм AES-128 в Delphi и C#: шифрование и дешифрование с парольной защитой

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

Введение

Алгоритм AES (Advanced Encryption Standard) является одним из самых популярных методов симметричного шифрования. AES-128 представляет собой версию AES с 128-битным ключом. В данном материале рассматривается использование AES-128 для шифрования и дешифрования строк с использованием пароля как ключа в средах Delphi и C#.

Шифрование в Delphi

Для шифрования строки в Delphi можно использовать библиотеку TurboPower LockBox 3. Ниже представлен пример функции шифрования строки с использованием пароля:

function EncryptText_AES_128(input, password: string): string;
var
  Codec: TCodec;
  CipherText: AnsiString;
begin
  Codec := TCodec.Create(nil);
  try
    Codec.CryptoLibrary := TCryptographicLibrary.Create(Codec);
    Codec.StreamCipherId := BlockCipher_ProgID;
    Codec.BlockCipherId := Format(AES_ProgId, [128]);
    Codec.ChainModeId := CBC_ProgId;
    Codec.Password := password;
    Codec.EncryptString(input, CipherText);
    Result := string(CipherText);
  finally
    Codec.Free;
  end;
end;

Дешифрование в C

Для дешифрования строки в C#, необходимо использовать аналогичный алгоритм и ключ, который использовался при шифровании. Пример функции дешифрования в C#:

public static string AES128_Decrypt(string Value, string Password)
{
    byte[] Buffer = Convert.FromBase64String(Value);
    using (ICryptoTransform transform = __Get_AES128_Transform(Password, true))
    {
        byte[] decryptedBlob = transform.TransformFinalBlock(Buffer, 0, Buffer.Length);
        return Encoding.Unicode.GetString(decryptedBlob);
    }
}

Обработка пароля

Ключ для AES должен иметь фиксированную длину 16 байт. Для преобразования строки пароля в ключ, обычно используют хеш-функцию, например SHA-256. В примере кода C# пароль преобразуется в ключ следующим образом:

var sha256CryptoServiceProvider = new SHA256CryptoServiceProvider();
var hash = sha256CryptoServiceProvider.ComputeHash(Encoding.Unicode.GetBytes(password));
var key = new byte[16];
Buffer.BlockCopy(hash, 0, key, 0, 16);

Заключение

Применение AES-128 для шифрования и дешифрования с парольной защитой требует внимания к деталям, таким как обработка ключа и использование инициализирующего вектора (IV). Важно также обеспечить совместимость между различными платформами и языками программирования.

Создано по материалам из источника по ссылке.

Пример реализации алгоритма шифрования AES-128 с использованием парольной защиты в средах Delphi и C# для шифрования и дешифрования данных.


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

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




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


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


реклама


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

Время компиляции файла: 2024-12-22 20:14:06
2025-03-14 13:02:01/0.0029480457305908/0