Delphi 语言 加密算法应用实战方案

Delphi阿木 发布于 2025-06-19 4 次阅读


Delphi 语言加密算法应用实战方案

随着信息技术的飞速发展,数据安全成为了一个日益重要的话题。加密算法作为保障数据安全的关键技术,被广泛应用于各个领域。Delphi 语言作为一种功能强大的编程语言,同样可以用于实现各种加密算法。本文将围绕 Delphi 语言加密算法的应用,提供一个实战方案,帮助读者了解如何在 Delphi 中实现加密和解密功能。

一、Delphi 语言简介

Delphi 是一种面向对象的编程语言,由 Borland 公司开发。它具有强大的数据库支持、丰富的组件库和易于使用的界面设计工具。Delphi 语言广泛应用于桌面应用程序、Web 应用程序和移动应用程序的开发。

二、加密算法概述

加密算法是将明文转换为密文的过程,通常包括以下几种类型:

1. 对称加密算法:使用相同的密钥进行加密和解密。

2. 非对称加密算法:使用一对密钥,一个用于加密,另一个用于解密。

3. 哈希算法:将任意长度的数据映射为固定长度的数据。

三、Delphi 中常用的加密算法

在 Delphi 中,可以使用多种加密算法,以下是一些常用的加密算法及其实现:

1. AES 加密算法

AES(Advanced Encryption Standard)是一种对称加密算法,广泛应用于数据加密。

delphi

uses


Aes, AesCng, SysUtils;

function EncryptAES(const AData: string; const AKey: string): string;


var


Aes: TAesCng;


AesKey: TAesKey;


AesIV: TAesIV;


Data: TBytes;


EncryptedData: TBytes;


begin


Aes := TAesCng.Create;


try


AesKey := TAesKey.Create;


try


AesIV := TAesIV.Create;


try


AesKey.Key := TEncoding.UTF8.GetBytes(AKey);


AesIV.IV := TEncoding.UTF8.GetBytes(AKey);


Data := TEncoding.UTF8.GetBytes(AData);


Aes.Key := AesKey;


Aes.IV := AesIV;


Aes.Mode := AES_CFB;


Aes.BlockSize := Aes.BlockSize;


Aes.Encrypt(Data, 0, Length(Data), EncryptedData);


Result := TEncoding.UTF8.GetString(EncryptedData);


finally


AesIV.Free;


end;


finally


AesKey.Free;


end;


finally


Aes.Free;


end;


end;

function DecryptAES(const AData: string; const AKey: string): string;


var


Aes: TAesCng;


AesKey: TAesKey;


AesIV: TAesIV;


EncryptedData: TBytes;


DecryptedData: TBytes;


begin


Aes := TAesCng.Create;


try


AesKey := TAesKey.Create;


try


AesIV := TAesIV.Create;


try


AesKey.Key := TEncoding.UTF8.GetBytes(AKey);


AesIV.IV := TEncoding.UTF8.GetBytes(AKey);


EncryptedData := TEncoding.UTF8.GetBytes(AData);


Aes.Key := AesKey;


Aes.IV := AesIV;


Aes.Mode := AES_CFB;


Aes.BlockSize := Aes.BlockSize;


Aes.Decrypt(EncryptedData, 0, Length(EncryptedData), DecryptedData);


Result := TEncoding.UTF8.GetString(DecryptedData);


finally


AesIV.Free;


end;


finally


AesKey.Free;


end;


finally


Aes.Free;


end;


end;


2. RSA 加密算法

RSA 是一种非对称加密算法,常用于数字签名和密钥交换。

delphi

uses


RSA, SysUtils;

function EncryptRSA(const AData: string; const APublicKey: string): string;


var


RSA: TRSACng;


EncryptedData: TBytes;


begin


RSA := TRSACng.Create;


try


RSA.KeySize := 2048;


RSA.Generate;


RSA.PublicKey := APublicKey;


EncryptedData := RSA.Encrypt(TEncoding.UTF8.GetBytes(AData));


Result := TEncoding.UTF8.GetString(EncryptedData);


finally


RSA.Free;


end;


end;

function DecryptRSA(const AData: string; const APrivateKey: string): string;


var


RSA: TRSACng;


DecryptedData: TBytes;


begin


RSA := TRSACng.Create;


try


RSA.KeySize := 2048;


RSA.Generate;


RSA.PrivateKey := APrivateKey;


DecryptedData := RSA.Decrypt(TEncoding.UTF8.GetBytes(AData));


Result := TEncoding.UTF8.GetString(DecryptedData);


finally


RSA.Free;


end;


end;


3. SHA-256 哈希算法

SHA-256 是一种常用的哈希算法,用于生成数据的摘要。

delphi

uses


SHA256, SysUtils;

function HashSHA256(const AData: string): string;


var


Sha256: TSHA256;


Hash: TBytes;


begin


Sha256 := TSHA256.Create;


try


Sha256.Update(TEncoding.UTF8.GetBytes(AData));


Hash := Sha256.Hash;


Result := TEncoding.UTF8.GetString(Hash);


finally


Sha256.Free;


end;


end;


四、实战案例

以下是一个使用 Delphi 语言实现加密和解密的简单示例:

delphi

program EncryptionDemo;

{$APPTYPE CONSOLE}

uses


SysUtils, Aes, AesCng;

var


Data: string;


Key: string;


EncryptedData, DecryptedData: string;


begin


try


// 输入明文数据


Write('Enter data to encrypt: ');


ReadLn(Data);

// 输入密钥


Write('Enter encryption key: ');


ReadLn(Key);

// 加密数据


EncryptedData := EncryptAES(Data, Key);

// 输出加密后的数据


WriteLn('Encrypted data: ', EncryptedData);

// 解密数据


DecryptedData := DecryptAES(EncryptedData, Key);

// 输出解密后的数据


WriteLn('Decrypted data: ', DecryptedData);


except


on E: Exception do


WriteLn('An error occurred: ', E.Message);


end;

ReadLn; // 等待用户输入,以便程序可以正常退出


end.


五、总结

本文介绍了 Delphi 语言中常用的加密算法,并提供了相应的代码实现。通过这些示例,读者可以了解到如何在 Delphi 中实现加密和解密功能。在实际应用中,可以根据具体需求选择合适的加密算法,并确保密钥的安全管理。

在数据安全日益重要的今天,掌握加密算法的应用对于开发人员来说是一项必备技能。希望本文能够帮助读者在 Delphi 语言中更好地应用加密算法,为数据安全保驾护航。