Я пытаюсь зашифровать и расшифровать строку с помощью ConvertTo-SecureString, вывести открытый текст строки и убедиться, что ключ работает правильно для расшифровки строки в PowerShell.
Я ожидаю, что он выведет «Hello World», но вместо этого я получаю неожиданную строку.
Как я могу это исправить? Я не могу использовать классы Security.Cryptography, потому что этот сценарий предназначен для работы в среде политики с ограниченным выполнением, где нельзя использовать Add-Type.
$encryptionKey = (13, 3, 4, 5, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
$stringToEncrypt = "Hello World"
$stringToEncrypt | ConvertTo-SecureString -AsPlainText -Force | ConvertFrom-SecureString -Key $encryptionKey | Out-File -FilePath key.txt
$decrypted = Get-Content key.txt | ConvertTo-SecureString -AsPlainText -Force | ConvertFrom-SecureString -Key $encryptionKey
Write-Host $decrypted # The Decrypted String, expected to be "Hello World"
Очень близко. Похоже, у вас просто смешанные параметры в части расшифровки. С ConvertTo-SecureString и ConvertFrom-SecureString.
ConvertTo-SecureString -Key $encryptionKey сначала расшифрует вашу зашифрованную строку и преобразует ее в безопасную строку. ConvertFrom-SecureString -AsPlainText затем преобразует защищенную строку обратно в обычную текстовую строку.
Изменить строку
# change this
$decrypted = Get-Content key.txt | ConvertTo-SecureString-AsPlainText -Force | ConvertFrom-SecureString -Key $encryptionKey
# to this
$decrypted = Get-Content key.txt | ConvertTo-SecureString -Key $encryptionKey | ConvertFrom-SecureString -AsPlainText
См. документацию для ConvertFrom-SecureString и ConvertTo-SecureString для получения дополнительных примеров и объяснений.