Delphi 中的 Base64 编码与 Java

在计算机领域中,数据的传输和存储经常需要进行编码和解码。其中,Base64 是一种常见的编码方式,经常用于将二进制数据转换为可打印的 ASCII 字符串。Delphi 和 Java 都提供了 Base64 编码和解码的类库,本文将介绍如何在这两种语言中使用 Base64 进行数据的编码和解码操作。

Base64 编码原理

Base64 是一种将二进制数据转换为 ASCII 字符串的编码方式。它将每 3 个字节的二进制数据转换为 4 个字符,并且只使用 ASCII 可打印字符。Base64 编码使用了 64 个不同的字符,包括大小写字母、数字和一些特殊字符。

Base64 编码的过程如下:

  1. 将需要编码的二进制数据按照每 3 个字节一组进行划分。
  2. 将每一组的 3 个字节转换为 4 个字符。
  3. 如果最后一组不足 3 个字节,根据需要进行补齐。
  4. 最后将所有的字符拼接在一起,得到最终的 Base64 编码结果。

Delphi 中的 Base64 编码

在 Delphi 中,可以使用 SysUtils 单元中的 EncodeBase64 函数进行 Base64 编码。以下是一个简单的示例代码:

uses
  SysUtils;

var
  Input: TBytes;
  EncodedString: string;
begin
  Input := TEncoding.UTF8.GetBytes('Hello, World!');
  EncodedString := EncodeBase64(Input);
  Writeln(EncodedString);
end.

在上述示例中,首先将需要编码的字符串转换为 TBytes 类型的二进制数据。然后使用 EncodeBase64 函数对二进制数据进行 Base64 编码,返回一个字符串结果。最后将编码结果输出到控制台。

Delphi 中的 Base64 解码

对于已经进行 Base64 编码的数据,可以使用 SysUtils 单元中的 DecodeBase64 函数进行解码。以下是一个简单的示例代码:

uses
  SysUtils;

var
  EncodedString: string;
  DecodedBytes: TBytes;
  DecodedString: string;
begin
  EncodedString := 'SGVsbG8sIFdvcmxkIQ==';
  DecodedBytes := DecodeBase64(EncodedString);
  DecodedString := TEncoding.UTF8.GetString(DecodedBytes);
  Writeln(DecodedString);
end.

在上述示例中,首先将需要解码的 Base64 字符串赋值给 EncodedString 变量。然后使用 DecodeBase64 函数对 Base64 字符串进行解码,返回一个 TBytes 类型的二进制数据。最后使用 TEncoding.UTF8.GetString 函数将解码后的二进制数据转换为字符串,并输出到控制台。

Java 中的 Base64 编码与解码

在 Java 中,可以使用 java.util.Base64 类进行 Base64 编码和解码操作。以下是一个简单的示例代码:

import java.util.Base64;

public class Base64Example {
    public static void main(String[] args) {
        byte[] input = "Hello, World!".getBytes();
        
        String encodedString = Base64.getEncoder().encodeToString(input);
        System.out.println(encodedString);
        
        byte[] decodedBytes = Base64.getDecoder().decode(encodedString);
        String decodedString = new String(decodedBytes);
        System.out.println(decodedString);
    }
}

在上述示例中,首先将需要编码的字符串转换为字节数组 input。然后使用 Base64.getEncoder().encodeToString 方法对字节数组进行 Base64 编码,返回一个字符串结果。最后将编码结果输出到控制台。

对于已经进行 Base64 编码的数据,可以使用 Base64.getDecoder().decode 方法进行解码。解码后的字节数组可以通过 new String 构造函数转换为字符串,并输出到控制台。

总结

本文介绍了在 Delphi 和 Java 中使用 Base64 进行数据编码和解码的方法。在 Delphi 中,可以使用 SysUtils 单元中的 `Encode