powershell - 如何在 Powershell 中实现二进制哈希字符串的 Base64 URL 安全编码?
问题描述
我正在以“Base64 编码”形式从服务器获取“输入”,如图所示。
- 我需要将其解码为二进制字符串 .ie 的原始形式
original = base64_decode(input)
。 - 连接即
to_be_hash =password (known value) + input
。 - 使用 SHA-256 散列连接的字符串。即
binary_hash_str =sha256(to_be_hash)
。
我需要对上面的二进制哈希字符串进行 Base64 URL 安全编码,以使其适合 HTTP 请求。
final_hash = base64_url_safe_encode(binary_hash_str)
我正在为此使用powershell。有人可以指导我如何进步。
解决方案
如果我理解正确,您想在 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
推荐阅读
- visual-studio - 如何使用 Visual Studio 2019 构建和运行 docker 映像?
- mariadb - mariadb FROM_UNIXTIME 未来时间限制
- vbscript - 我正在尝试制作一个 .vbs 文件,以便它可以发送密钥
- java - 将 HTTP 替换为 HTTPS 后授权不起作用
- r - 是否有一个 R 函数来解决这个 ggmap 错误,所以我得到了我的地图?
- concurrency - 读写器优先级的读写器问题
- python - 如何使用 Python OpenCV 在图像中获得泛滥区域及其边界?
- c# - 如何处理匿名类型的铸造委托
, 委托 T 用于 Where IEnumerable 的 () 方法 - android - Android Studio 崩溃错误 - 如何解决此错误
- verilog - Verilog - 尝试复制另一个模块的输出时出现不匹配错误