Неожиданные результаты в Powershell при создании строки для токенизации base64 basi c auth - PullRequest
0 голосов
/ 21 апреля 2020

Я пытаюсь вызвать службу jira REST, используя PowerShell, следуя инструкциям здесь , где базовая c строка аутентификации username: пароль fred: fred приводит к ха sh ZnJlZDpmcmVk .

Мне не удалось воссоздать это значение с помощью сценария powershell ps1, и я ищу помощь.

Моя функция выплевывает "fred fred:", что, очевидно, приводит к другому ха sh - ZnJlZCBmcmVkOg == Однако мои операции, похоже, работают, когда запускаются непосредственно в оболочке.

Моя функция:

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
}

Exection:

PS H:\> hash-64('fred','fred')
fred fred:
ZnJlZCBmcmVkOg==

Из оболочки:

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

Обратите внимание, что в оболочке строка верна И ха sh соответствует ожидаемому результату. Как вы можете заметить, в функции я использую приведение в качестве решения (не), и я пробовал различные приемы из других постов, но все безрезультатно.

1 Ответ

0 голосов
/ 21 апреля 2020

Я думаю, что вы передаете массив в ха sh -64. Попробуйте позвонить с помощью hash-64 -user 'fred' -password 'fred' или hash-64 'fred' 'fred'

...