Delphi 语言 数据加密解密示例

Delphi阿木 发布于 2025-06-18 5 次阅读


Delphi 语言数据加密解密示例教程

Delphi 是一种面向对象的编程语言,由 Borland 公司开发,广泛应用于桌面应用程序的开发。在数据传输和存储过程中,加密和解密技术是保证数据安全的重要手段。本文将围绕 Delphi 语言,通过示例代码展示如何实现数据的加密和解密。

加密算法选择

在 Delphi 中,有多种加密算法可供选择,如 AES、DES、3DES 等。本文将使用 AES 算法进行数据加密和解密,因为 AES 算法具有高安全性、高速度和良好的兼容性。

加密和解密流程

1. 生成密钥:加密和解密需要使用相同的密钥。

2. 初始化向量(IV):IV 是一个随机生成的数据块,用于保证加密数据的随机性。

3. 加密数据:使用密钥和 IV 对数据进行加密。

4. 解密数据:使用相同的密钥和 IV 对加密后的数据进行解密。

示例代码

以下是一个使用 AES 算法进行数据加密和解密的 Delphi 示例:

delphi

uses


Aes, AesCng, SysUtils;

function EncryptData(const Data: string; const Key: string; const IV: string): string;


var


Aes: TAes;


Encrypted: TBytes;


begin


Aes := TAes.Create;


try


Aes.Key := TEncoding.UTF8.GetBytes(Key);


Aes.IV := TEncoding.UTF8.GetBytes(IV);


Aes.Mode := aemECB; // 可以根据需要选择其他模式,如aemCBC


Aes.Padding := apPKCS7;


SetLength(Encrypted, Length(Data) 2);


Aes.Encrypt(TEncoding.UTF8.GetBytes(Data), Length(Data), Encrypted, 0);


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


finally


Aes.Free;


end;


end;

function DecryptData(const EncryptedData: string; const Key: string; const IV: string): string;


var


Aes: TAes;


Decrypted: TBytes;


begin


Aes := TAes.Create;


try


Aes.Key := TEncoding.UTF8.GetBytes(Key);


Aes.IV := TEncoding.UTF8.GetBytes(IV);


Aes.Mode := aemECB; // 可以根据需要选择其他模式,如aemCBC


Aes.Padding := apPKCS7;


SetLength(Decrypted, Length(EncryptedData) div 2);


Aes.Decrypt(TEncoding.UTF8.GetBytes(EncryptedData), Length(EncryptedData), Decrypted, 0);


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


finally


Aes.Free;


end;


end;

var


Key, IV, Data, EncryptedData, DecryptedData: string;


begin


// 生成密钥和 IV


Key := '1234567890123456';


IV := '1234567890123456';

// 待加密数据


Data := 'Hello, Delphi!';

// 加密数据


EncryptedData := EncryptData(Data, Key, IV);

// 输出加密后的数据


Writeln('Encrypted Data: ' + EncryptedData);

// 解密数据


DecryptedData := DecryptData(EncryptedData, Key, IV);

// 输出解密后的数据


Writeln('Decrypted Data: ' + DecryptedData);


end.


代码解析

1. 加密函数 EncryptData:接收待加密数据、密钥和 IV,使用 AES 算法进行加密,并返回加密后的数据。

2. 解密函数 DecryptData:接收加密后的数据、密钥和 IV,使用 AES 算法进行解密,并返回解密后的数据。

3. 主程序:生成密钥和 IV,调用加密和解密函数,并输出结果。

总结

本文通过 Delphi 语言示例代码,展示了如何使用 AES 算法进行数据的加密和解密。在实际应用中,可以根据需要选择合适的加密算法和模式,并确保密钥和 IV 的安全性。希望本文对您有所帮助。