HMAC SHA256 Powershell转换

时间:2018-11-28 22:55:59

标签: powershell sha256 hmac

为什么要使用以下Powershell脚本:

$privateKey = "843c1f887b"
$requestData = "1543448572|d.lastname@firm.com|Firstname Lastname"
function signRequest {
    $hmacsha = New-Object System.Security.Cryptography.HMACSHA256
    $hmacsha.key = [Text.Encoding]::ASCII.GetBytes($privateKey)
    $signature = $hmacsha.ComputeHash([Text.Encoding]::ASCII.GetBytes($requestData))
    $signature = [Convert]::ToBase64String($signature)
    $outi = $signature
    return $signature
}

转换为哈希:

FipK51tOtzb2m2yFQAf5IK6BNthClnqE24luMzYMPuo=

和其他具有相同输入的在线hmac sha256生成器:

162a4ae75b4eb736f69b6c854007f920ae8136d842967a84db896e33360c3eea

任何建议我在脚本中做错了什么? 谢谢!

1 个答案:

答案 0 :(得分:0)

您的代码会生成正确的HMAC,您只需对其进行base64编码即可,而不是像其他所有工具一样输出十六进制字符串。

更改此行

$signature = [Convert]::ToBase64String($signature)

$signature = [System.BitConverter]::ToString($signature).Replace('-','').ToLower()

说明: