首页 > 解决方案 > 如何在 Powershell 中实现二进制哈希字符串的 Base64 URL 安全编码?

问题描述

我正在以“Base64 编码”形式从服务器获取“输入”,如图所示

  1. 我需要将其解码为二进制字符串 .ie 的原始形式original = base64_decode(input)
  2. 连接即to_be_hash =password (known value) + input
  3. 使用 SHA-256 散列连接的字符串。即binary_hash_str =sha256(to_be_hash)

我需要对上面的二进制哈希字符串进行 Base64 URL 安全编码,以使其适合 HTTP 请求。

final_hash = base64_url_safe_encode(binary_hash_str)

我正在为此使用powershell。有人可以指导我如何进步。

标签: powershellencodinghashbinarybase64

解决方案


如果我理解正确,您想在 url 中发送一个 base64 字符串作为参数?您可以使用转义 url 中不可接受的字符[uri]::EscapeDataString()

$text = "some text!!"
$bytes = [System.Text.Encoding]::Unicode.GetBytes($text)
$base64 = [System.Convert]::ToBase64String($bytes)
$urlSafeString = [uri]::EscapeDataString($base64)

"Base64        : " + $base64
"urlSafeString : " + $urlSafeString

Base64        : cwBvAG0AZQAgAHQAZQB4AHQAIQAhAA==
urlSafeString : cwBvAG0AZQAgAHQAZQB4AHQAIQAhAA%3D%3D


推荐阅读