当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 如何在 PowerShell 中将字符串转换为 Base64?

作者:精品下载站 日期:2024-12-14 05:19:56 浏览:16 分类:玩电脑

如何在 PowerShell 中将字符串转换为 Base64?


最近,我的客户向我们提出将字符串转换为base64 的要求。我们为此使用了 PowerShell。在本教程中,我将通过示例向您展示如何使用不同的方法在 PowerShell 中将字符串转换为 base64。

要在 PowerShell 中将字符串转换为 Base64,可以使用 [System.Convert] 类。首先,使用 [System.Text.Encoding]::UTF8.GetBytes($string) 将字符串转换为字节数组,然后使用 [System.Convert]::ToBase64String($bytes) 将其编码为 Base64。例如:

$string = "Hello, World!"
$bytes = [System.Text.Encoding]::UTF8.GetBytes($string)
$base64String = [System.Convert]::ToBase64String($bytes)
$base64String

这将生成原始文本的 Base64 编码字符串。

什么是 Base64 编码?

Base64 编码是一种通过将二进制数据转换为 radix-64 表示形式将其转换为 ASCII 字符串格式的方法。这对于编码需要通过设计用于处理文本的媒体存储和传输的数据特别有用。

在 PowerShell 中将字符串转换为 Base64

现在。让我通过示例向您展示在 Powershell 中将字符串转换为 Base64 的不同方法。

方法一:使用[System.Convert]类

在 PowerShell 中将字符串转换为 Base64 的最简单方法是使用 [System.Convert] 类。操作方法如下:

例子

这是一个例子。

# Original string
$string = "Hello, New York!"

# Convert string to byte array
$bytes = [System.Text.Encoding]::UTF8.GetBytes($string)

# Convert byte array to Base64 string
$base64String = [System.Convert]::ToBase64String($bytes)

# Output the Base64 string
$base64String

在这个例子中:

  1. 我们从字符串“Hello, New York!”开始。
  2. 我们使用 UTF-8 编码将字符串转换为字节数组。
  3. 然后,我们使用 [System.Convert]::ToBase64String 将字节数组转换为 Base64 字符串。

我执行了上面的 PowerShell 脚本,您可以在下面的屏幕截图中看到输出:

[玩转系统] 如何在 PowerShell 中将字符串转换为 Base64?

查看在 PowerShell 中将字符串转换为哈希表

方法2:使用[System.Text.Encoding]类

将字符串转换为 Base64 的另一种方法是直接使用 [System.Text.Encoding] 类来处理编码和转换过程。

例子

这是如何执行此操作的完整示例。

# Original string
$string = "PowerShell Base64 Encoding"

# Convert string to byte array using UTF8 encoding
$bytes = [System.Text.Encoding]::UTF8.GetBytes($string)

# Encode byte array to Base64 string
$base64String = [Convert]::ToBase64String($bytes)

# Output the Base64 string
$base64String

此方法与第一个方法类似,但强调使用 System.Text.Encoding 显式处理字符串到字节的转换。

执行上述 PowerShell 脚本后,您将获得下面屏幕截图中的确切输出。

[玩转系统] 如何在 PowerShell 中将字符串转换为 Base64?

方法三:使用自定义函数

在 PowerShell 中,您还可以创建自定义函数来重用逻辑并处理多种编码。下面是如何执行此操作的示例。

例子

function ConvertTo-Base64 {
    param (
        [string]$inputString
    )

    # Convert string to byte array
    $bytes = [System.Text.Encoding]::UTF8.GetBytes($inputString)

    # Convert byte array to Base64 string
    $base64String = [System.Convert]::ToBase64String($bytes)

    return $base64String
}

# Use the custom function
$encodedString = ConvertTo-Base64 -inputString "Custom Function Example"
$encodedString

在此示例中,ConvertTo-Base64 函数将字符串作为输入,将其转换为字节数组,然后将其编码为 Base64 字符串。此函数可以在整个脚本中重复使用,以实现一致的 Base64 编码。

查看在 PowerShell 中将字符串转换为 JSON

在 PowerShell 中解码 Base64 字符串

要将 Base64 字符串解码回其原始形式,您可以再次使用 [System.Convert] 类,但这次使用 FromBase64String 方法。

例子

这是一个完整的例子。

# Base64 encoded string
$base64String = "SGVsbG8sIFdvcmxkIQ=="

# Convert Base64 string to byte array
$bytes = [System.Convert]::FromBase64String($base64String)

# Convert byte array to original string
$originalString = [System.Text.Encoding]::UTF8.GetString($bytes)

# Output the original string
$originalString

此示例演示如何通过反转编码过程将 Base64 字符串解码回其原始文本。

您可以看到下面的屏幕截图,我使用 VS code 执行了上述 PowerShell 脚本。

[玩转系统] 如何在 PowerShell 中将字符串转换为 Base64?

结论

作为一名 PowerShell 开发人员,您经常会遇到这样的需求,那就是如何在 PowerShell 中将字符串转换为 Base64。我已经解释了如何使用不同的方法来完成此操作,例如使用 [System.Convert] 类和 [System.Text.Encoding] 类,并且您还可以创建一个自定义函数来重用它。我还讨论了如何在 PowerShell 中解码 Base64 字符串。

不过,您还有疑问吗?欢迎在下面发表评论。我会尽力尽快回复。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯