迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 >

Windows PowerShell 中的 Base64 编码

作者:迹忆客 最近更新:2024/03/04 浏览次数:

Base64 编码是二进制到文本编码方法之一,它将二进制数据表示为更易读的字符串格式。

没有用于 Base64 转换的 Windows PowerShell 本机命令(从 PowerShell [Core] 7.1 开始)。因此,目前需要直接使用 .NET 库。本文将向你展示使用 Windows PowerShell 和 .NET 库与 Base64 相互转换的可能方法。


关于 Base 64

用技术术语来说,Base64 编码将三个 8 位字节转换为四个 6 位字节,由编号为 0-63 的位组成,因此名称为 Base64。此外,解码后的数据是原始字符串语法的 3/4。

虽然 Base64 编码方法可以对纯文本进行编码,但其真正的好处是将传输系统解释为控制字符的不可打印字符编码。

因此,你必须始终明确指定 Base64 字节应表示的字符编码。


与 Base64 相互转换

在转换为 Base64 时,你必须首先使用 Base64 字符串的用户期望的字符编码来获取你尝试编码的字符串的字节表示。

此外,在从 Base64 转换时,你必须使用我们用于创建 Base64 表示的相同编码将生成的字节数组解释为字符串。

以下示例将使用 .NET 库在 UTF-8 编码字符串格式之间进行转换:

转换为 Base64:

[Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes('Motorhead'))

输出:

TW90b3JoZWFk

从 Base64 转换:

[Text.Encoding]::ASCII.GetString([Convert]::FromBase64String('TW90b3JoZWFk')) 

输出:

Motorhead

本文一直将 Base64 编码定义为一系列转换为 ASCII 字符串格式的字节。但是,使用 Windows PowerShell 和 .NET 库,我们可以直接转换为其他字符串格式,例如 Unicode 或 UTF-8。

要在 UTF-16LE(Unicode)或 ASCII 之间进行转换,请将 [Text.Encoding]::Unicode[Text.Encoding]::ASCII 替换为 [Text.Encoding]::UTF8 分别。

示例语法:

[Text.Encoding]::Unicode.GetString([System.Convert]::FromBase64String("YmxhaGJsYWg="))
[Text.Encoding]::ASCII.GetString([System.Convert]::FromBase64String("YmxhaGJsYWg="))

上一篇:PowerShell 中的所有替换方法

下一篇:没有了

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 Windows PowerShell 中写入输出

发布时间:2024/03/04 浏览次数:121 分类:编程语言

本文将向你展示如何在 Windows PowerShell 中编写或打印输出。本文还将区分多个 write cmdlet 并解释它们的意义。

在 PowerShell 中注释代码

发布时间:2024/03/04 浏览次数:197 分类:编程语言

本文将展示在 Windows PowerShell 中注释代码的多种方法。本文还介绍了注释代码时的一些最佳实践。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便