delphi aes 加密解密
时间: 2023-08-27 14:02:14 浏览: 36
Delphi是一种编程语言,可以使用它来进行AES(高级加密标准)算法的加密和解密操作。AES是一种对称加密算法,可以使用相同的密钥进行加密和解密。
在Delphi中,可以使用TNetEncoding类来进行AES加密和解密。首先,需要引入System.NetEncoding单元,然后可以使用TNetEncoding类中的静态方法进行加密和解密操作。
对于加密,可以使用TNetEncoding.Base64.EncodeBytesToString方法将明文数据加密为字符串。需要提供密钥和初始向量(IV)作为参数。
对于解密,可以使用TNetEncoding.Base64.DecodeStringToBytes方法将加密过的字符串解密为字节数组。同样需要提供密钥和IV作为参数。
以下是一个简单的示例:
```delphi
uses
System.NetEncoding;
function AESEncrypt(const plainText, key, iv: string): string;
var
encoding: TNetEncoding;
plainBytes, cipherBytes: TBytes;
begin
encoding := TNetEncoding.Base64;
plainBytes := TEncoding.UTF8.GetBytes(plainText);
cipherBytes := encoding.EncodeBytes(TNetEncoding.ANSI.GetBytes(key), TNetEncoding.ANSI.GetBytes(iv), plainBytes);
Result := encoding.EncodeBytesToString(cipherBytes);
end;
function AESDecrypt(const cipherText, key, iv: string): string;
var
encoding: TNetEncoding;
cipherBytes, plainBytes: TBytes;
begin
encoding := TNetEncoding.Base64;
cipherBytes := encoding.DecodeStringToBytes(cipherText);
plainBytes := encoding.DecodeBytes(TNetEncoding.ANSI.GetBytes(key), TNetEncoding.ANSI.GetBytes(iv), cipherBytes);
Result := TEncoding.UTF8.GetString(plainBytes);
end;
// 使用示例
var
plainText, key, iv, cipherText: string;
begin
plainText := 'Hello, World!';
key := '01234567890123456789012345678901';
iv := '0123456789012345';
cipherText := AESEncrypt(plainText, key, iv);
ShowMessage('加密后的结果:' + cipherText);
plainText := AESDecrypt(cipherText, key, iv);
ShowMessage('解密后的结果:' + plainText);
end;
```
这是一个基本的Delphi代码示例,可以使用AES算法加密和解密数据。注意,为了安全起见,密钥和初始向量应保密保存,并且需要相同的密钥和IV才能将加密数据正确解密出来。
相关推荐















