Как зашифровать и закодировать пароль с помощью PowerShell v2? - PullRequest
0 голосов
/ 04 ноября 2011

Я пытаюсь подключиться к веб-сервису, используя 64-битный пароль SHA1, но я не уверен, как его кодировать в powershell.

Я пытался использовать: PS C: \ Program Files (x86) \ PowerGUI> $ password = "пароль здесь не показан"

PS C:\Program Files (x86)\PowerGUI> $bytes =  System.Text.Encoding]::Unicode.GetBytes($password)

PS C:\Program Files (x86)\PowerGUI> $encodedString = [Convert]::ToBase64CharArray($bytes)

Но я получил это обратно:

Не удается найти перегрузку для "ToBase64CharArray" и счетчика аргументов: "1».1 строкановинка с powershell, так что это может даже не быть правильным кодом для использования.Я пытался изменить пример, который нашел в Интернете.

Есть идеи, как сделать это только в powershell, используя шифрование SHA1 и base64?


Хорошо, этоработает для кодирования, спасибо Джонатану за эту часть:

$str = "pwd"
$bytes = [System.Text.Encoding]::Unicode.GetBytes($str)
$encodedStr = [Convert]::ToBase64String($bytes)

# and the result:
Write-Host $encodedStr
cAB3AGQA

Я заметил, что вызов функции :: чувствителен к пробелам.Это работает для шифрования.

$Sha1provider = New-Object System.Security.Cryptography.SHA1CryptoServiceProvider
$hashBytes = $Sha1provider.ComputeHash($bytes)
Write-Host $hashBytes
114 168 243 129 97 21 246 249 22 4 38 215 241 185 174 86 116 201 7 7

1 Ответ

1 голос
/ 04 ноября 2011

Метод Convert.ToBase64CharArray не перегружен одним аргументом.

http://msdn.microsoft.com/en-us/library/3d0e5t57.aspx

Вы, вероятно, хотите сделать:

$encodedString = [Convert]::ToBase64String($bytes);
write-host $encodedString

Обратите внимание, что кодировка base64 не является кодировкой SHA1. Смотрите здесь: http://blog.logiclabz.com/c/function-to-encrypt-string-in-c-net-using-sha1-algorithm.aspx

Кроме того, вам не обязательно преобразовывать код C # в Powershell.

Вы можете использовать Add-Type для включения кода C # в свои скрипты.

PS: И я думаю, вы знаете, что кодирование не является шифрованием? http://www.blesta.com/2009/07/26/encoding-vs-encryption/

...