Delphi 语言 字符串加密与解密

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


摘要:

随着信息技术的飞速发展,数据安全成为了一个日益重要的话题。在Delphi编程语言中,字符串加密与解密是保证数据安全的重要手段。本文将围绕Delphi语言,详细介绍几种常见的字符串加密与解密方法,并给出相应的代码实现。

一、

Delphi是一种功能强大的编程语言,广泛应用于桌面应用程序、移动应用和Web服务等领域。在Delphi编程中,字符串加密与解密是保护数据安全的关键技术。本文将介绍几种常见的加密算法,并展示如何在Delphi中实现字符串的加密与解密。

二、常见的加密算法

1. Base64编码

Base64是一种基于64个可打印字符来表示二进制数据的表示方法。它可以将二进制数据转换为字符串,便于存储和传输。Base64不是一种加密算法,但它可以用于数据的编码和解码。

2. MD5加密

MD5是一种广泛使用的散列函数,用于生成数据的摘要。虽然MD5已经被证明存在安全漏洞,但它仍然被用于一些场景,如密码存储。

3. AES加密

AES(Advanced Encryption Standard)是一种对称加密算法,广泛应用于数据加密。它具有较高的安全性,且加密和解密速度较快。

三、Delphi中的字符串加密与解密实现

1. Base64编码与解码

delphi

uses


SysUtils;

function EncodeToBase64(const S: string): string;


var


L: Integer;


begin


L := Length(S);


SetLength(Result, L 4 + 3);


Result := Result + ' ';


Result := Result + Base64Encode(PChar(S)^, L);


SetString(Result, PChar(Trim(Result)), Length(Result));


end;

function DecodeFromBase64(const S: string): string;


var


L: Integer;


begin


L := Length(S);


SetLength(Result, L 3 div 4);


Result := Result + ' ';


Result := Result + Base64Decode(PChar(S)^, L);


SetString(Result, PChar(Trim(Result)), Length(Result));


end;


2. MD5加密

delphi

uses


IdHash, IdHashMD5;

function EncryptToMD5(const S: string): string;


var


H: TIdHashMD5;


begin


H := TIdHashMD5.Create;


try


H.UpdateString(S);


Result := H.HashStringAsHex;


finally


H.Free;


end;


end;


3. AES加密与解密

delphi

uses


Aes, Crypto;

function EncryptAES(const S: string; const Key: string): string;


var


AES: TAes;


Input, Output: TMemoryStream;


KeyBytes: TBytes;


begin


AES := TAes.Create;


try


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


AES.Key := KeyBytes;


AES.Mode := amECB;


AES.Padding := apPKCS7;

Input := TMemoryStream.Create;


try


Output := TMemoryStream.Create;


try


Input.Write(PChar(S)^, Length(S));


Input.Position := 0;


AES.EncryptStream(Input, Output);


SetLength(Result, Output.Size);


Output.Position := 0;


Output.Read(Result[1], Output.Size);


finally


Output.Free;


end;


finally


Input.Free;


end;


finally


AES.Free;


end;


end;

function DecryptAES(const S: string; const Key: string): string;


var


AES: TAes;


Input, Output: TMemoryStream;


KeyBytes: TBytes;


begin


AES := TAes.Create;


try


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


AES.Key := KeyBytes;


AES.Mode := amECB;


AES.Padding := apPKCS7;

Input := TMemoryStream.Create;


try


Output := TMemoryStream.Create;


try


Input.Write(PChar(S)^, Length(S));


Input.Position := 0;


AES.DecryptStream(Input, Output);


SetLength(Result, Output.Size);


Output.Position := 0;


Output.Read(Result[1], Output.Size);


finally


Output.Free;


end;


finally


Input.Free;


end;


finally


AES.Free;


end;


end;


四、总结

本文介绍了Delphi语言中几种常见的字符串加密与解密方法,包括Base64编码、MD5加密和AES加密。通过这些方法,我们可以有效地保护数据的安全。在实际应用中,应根据具体需求选择合适的加密算法,并注意密钥的安全管理。

注意:本文提供的代码仅供参考,实际应用中可能需要根据具体情况进行调整。由于加密技术不断发展,建议关注最新的加密算法和安全标准。