为base64基本身份验证标记化创建字符串时,Powershell中出现意外结果



我正试图按照此处的说明使用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'调用它

相关内容

  • 没有找到相关文章

最新更新