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

如何在Powershell中实现二进制哈希串的Base64 URL安全编码

Powershell 实现指定加签流程代码

直接复制以下代码,替换前两行的变量值即可运行:

# 请替换为实际的已知密码、从服务器获取的Base64输入
$knownPassword = "替换为你的实际密码"
$base64Input = "替换为服务器返回的Base64字符串"

# 1. 解码Base64输入为原始二进制字节数组
$originalBytes = [Convert]::FromBase64String($base64Input)

# 2. 拼接待哈希内容,转为UTF8编码字节数组
# 注意:如果要求拼接的是「密码+解码后的原始内容」,可参考下文的调整方案
$toHashContent = $knownPassword + $base64Input
$toHashBytes = [System.Text.Encoding]::UTF8.GetBytes($toHashContent)

# 3. 计算SHA256哈希值
$sha256Provider = [System.Security.Cryptography.SHA256]::Create()
$hashBinaryBytes = $sha256Provider.ComputeHash($toHashBytes)

# 4. 转为URL安全的Base64编码
$normalBase64 = [Convert]::ToBase64String($hashBinaryBytes)
$finalHash = $normalBase64.Replace('+', '-').Replace('/', '_').TrimEnd('=')

# 输出最终结果
Write-Host "最终哈希值:$finalHash"

常见调整方案

  • 若步骤2要求拼接的是「已知密码 + Base64解码后的原始文本内容」,替换步骤2的代码为:
$originalStr = [System.Text.Encoding]::UTF8.GetString($originalBytes)
$toHashContent = $knownPassword + $originalStr
$toHashBytes = [System.Text.Encoding]::UTF8.GetBytes($toHashContent)
  • 若解码后的原始内容是二进制非文本数据,直接拼接字节数组即可:
$pwdBytes = [System.Text.Encoding]::UTF8.GetBytes($knownPassword)
$toHashBytes = $pwdBytes + $originalBytes
  • 若内容编码不是UTF8,将代码中的[System.Text.Encoding]::UTF8替换为对应编码即可,例:ASCII编码替换为[System.Text.Encoding]::ASCII。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 17:54:01