You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell中将十六进制MAC地址字符串转换为Base64的方法咨询

PowerShell 复现MAC地址转Base64逻辑的实现

正确可运行代码

# 定义输入MAC地址
$macAddress = "AA:BB:CC:DD:E2:00"

# 移除所有支持的分隔符(:、-、.)
$cleanMac = $macAddress -replace '[:\-\.]', ''

# 将十六进制字符串转换为对应字节数组
$bytes = [System.Convert]::FromHexString($cleanMac)

# 字节数组编码为Base64字符串,即为最终结果
$base64Result = [System.Convert]::ToBase64String($bytes)

# 输出验证,示例输入对应输出为 qrvM3eIA
Write-Output $base64Result

旧版本PowerShell兼容方案

如果你使用PowerShell 5.1及更低版本,[System.Convert]::FromHexString 接口不可用,可将转字节数组的步骤替换为如下实现:

$bytes = for ($i = 0; $i -lt $cleanMac.Length; $i += 2) {
    [Convert]::ToByte($cleanMac.Substring($i, 2), 16)
}

原有方案错误原因

  • 第一种方案报错原因:Format-Hex 输出的是供展示的格式化对象,不是原始字节数组,不符合BitConverter.ToString的参数要求,因此触发重载匹配失败的报错。你看到的单参数示例传入的是标准字节数组,和Format-Hex的输出不是同类型数据。
  • 第二种方案结果错误原因:[System.Text.Encoding]::UTF8.GetBytes() 是将字符串的每个字符按UTF8规则转字节,例如字符A会被转为0x41,和我们需要的「两个十六进制字符映射为一个字节」的逻辑完全不同,因此输出不符合预期。

内容的提问来源于stack exchange,提问作者Grant Curell

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 11:21:02