Не удается зашифровать/расшифровать строку в Powershell

Я пытаюсь зашифровать и расшифровать строку с помощью 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"
[JS за 1 час] - 9. Асинхронный
[JS за 1 час] - 9. Асинхронный
JavaScript является однопоточным, то есть он может обрабатывать только одну задачу за раз. Для обработки длительных задач, таких как сетевые запросы,...
Топ-10 компаний-разработчиков PHP
Топ-10 компаний-разработчиков PHP
Если вы ищете надежных разработчиков PHP рядом с вами, вот список лучших компаний по разработке PHP.
Скраппинг поиска Apple App Store с помощью Python
Скраппинг поиска Apple App Store с помощью Python
📌Примечание: В этой статье я покажу вам, как скрапировать поиск Apple App Store и получить точно такой же результат, как на Apple iMac, потому что...
Редкие достижения на Github ✨
Редкие достижения на Github ✨
Редкая коллекция доступна в профиле на GitHub ✨
Подъем в javascript
Подъем в javascript
Hoisting - это поведение в JavaScript, при котором переменные и объявления функций автоматически "перемещаются" в верхнюю часть соответствующих...
Улучшение генерации файлов Angular
Улучшение генерации файлов Angular
Angular - это фреймворк. Вы можете создать практически любое приложение без использования сторонних библиотек.
1
0
81
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Очень близко. Похоже, у вас просто смешанные параметры в части расшифровки. С 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 для получения дополнительных примеров и объяснений.

Другие вопросы по теме