我有,我想編碼爲Base64字符串,然後在以後解碼到從Base64編碼字符串中的.exe文件.NET程序exe文件,使用PowerShell 。編碼/解碼.EXE爲Base64編碼
我到目前爲止的內容會生成一個.exe文件,但是,該文件作爲可運行的應用程序無法識別,並且與我傳入的文件長度不同編碼腳本。
我想我可以在這裏使用了錯誤的編碼,但我不知道。
編碼腳本:
Function Get-FileName($initialDirectory)
{
[System.Reflection.Assembly]::LoadWithPartialName("System.windows.forms") | Out-Null
$OpenFileDialog = New-Object System.Windows.Forms.OpenFileDialog
$OpenFileDialog.initialDirectory = $initialDirectory
$OpenFileDialog.filter = "All files (*.*)| *.*"
$OpenFileDialog.ShowDialog() | Out-Null
$FileName = $OpenFileDialog.filename
$FileName
} #end function Get-FileName
$FileName = Get-FileName
$Data = get-content $FileName
$Bytes = [System.Text.Encoding]::Unicode.GetBytes($Data)
$EncodedData = [Convert]::ToBase64String($Bytes)
解碼腳本:
$Data = get-content $FileName
$Bytes = [System.Text.Encoding]::UTF8.GetBytes($Data)
$EncodedData = [System.Text.Encoding]::Unicode.GetString([System.Convert]::FromBase64String($Bytes))
$EncodedData | Out-File ($FileName)
你有沒有考慮與編碼和解碼功能,需要一個字節流,檢查是否可以編碼一些像「你好」來回編寫測試用例?另外,也許在Get-Content上你想通過-Raw開關。在IDE或VSCode中測試會讓你看到變量和調試。 –