我正试图按照此处的说明使用PowerShell调用jira REST服务,其中fred:fred的基本身份验证字符串username:password导致ZnJlZDpmcmVk的哈希。
我无法使用powershell ps1脚本重新创建该值,正在寻求帮助。
我的函数吐出了"fred-fred:",这显然导致了不同的散列-ZnJlZCBmcmVkOg==然而,当直接在shell中运行时,我的操作似乎可以工作。
我的功能:
function hash-64($user,$password){
$u=[string]$user
$p=[string]$password
$all="${u}:${p}"
write-host $all
$base64AuthInfo = [convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes($all))
return $base64AuthInfo
}
执行:
PS H:> hash-64('fred','fred')
fred fred:
ZnJlZCBmcmVkOg==
来自Shell:
PS H:> $u='fred'
PS H:> $p='fred'
PS H:> $shell_all="${u}:${p}"
PS H:> write-host $shell_all
fred:fred
PS H:> $base64AuthInfo = [convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes($shell_all))
>>
PS H:> $base64AuthInfo
ZnJlZDpmcmVk
请注意,在shell中,字符串是正确的,并且散列与预期结果匹配。正如你可能在函数中注意到的那样,我把选角作为一种解决方案(而不是(,我尝试了其他帖子中的各种技巧,但都无济于事。
我认为您正在向hash-64传递一个数组。尝试用hash-64 -user 'fred' -password 'fred'
或hash-64 'fred' 'fred'
调用它